Proposta para remover menções ao XSLT da especificação HTML
(github.com/whatwg)- Foi proposto um Pull Request para remover menções relacionadas a XSLT do documento padrão do HTML
- O autor da proposta explicou que há bugs de implementação relatados nos principais navegadores, como Chrome, Firefox e Safari, e que questões de teste e documentação também estão em andamento
- Opiniões contrárias apontam problemas de compatibilidade com sites existentes e problemas de legibilidade em que documentos XML podem quebrar com a remoção de
<?xml-stylesheet?> - Alguns desenvolvedores enfatizam que o XSLT ainda é usado em documentos governamentais, RSS e ambientes embarcados
- Também foi levantada a preocupação de que decisões centradas em grandes fabricantes de navegadores possam levar à redução da abertura da web e de sua diversidade histórica
Visão geral do Pull Request
- Título do PR: Remove mentions of XSLT from the html spec
- Autor da proposta: mfreed7
- Destino: whatwg/html:main
- Issue relacionada: #11523
- Há relatos de bugs de implementação relacionados em Chromium, Gecko e WebKit
- Materiais relacionados, como a documentação da MDN e o HTML AAM, também devem ser atualizados
Principais objeções
gucci-on-fleek (2025-08-15)
- Defende que é preciso considerar estatísticas de uso e a escala dos sites
- Sites grandes podem ser atualizados, mas sites pequenos/pessoais muitas vezes ficam décadas sem manutenção, gerando preocupação com quebra permanente de compatibilidade
- Remover
XSLTProcessor()limitaria apenas uma funcionalidade de JS, mas remover<?xml-stylesheet?>causaria o problema de documentos XML simplesmente não serem exibidos - Recursos antigos do HTML (
<font>,<align>,<xmp>) ainda funcionam, mas desta vez, segundo a crítica, trata-se de uma mudança sem precedentes que quebra o próprio documento - Destaca-se o risco de bloquear o acesso a materiais importantes, como arquivos antigos e sites universitários
nomis (2025-08-18)
- Apresenta exemplos concretos de uso do XSLT
- Casos de uso pessoais
- Transformar dados XML complexos em tabelas HTML
- Em microcontroladores com restrição de memória, transformar XML dinâmico com XSLT estático
- Critica que um polyfill em JS incluindo o libxml2 inteiro é irrealista, e que remover o suporte no navegador equivale, na prática, a forçar uma reimplementação
jonsterling (2025-08-18)
- Critica a realidade em que fabricantes de navegadores definem a plataforma web de forma monopolizada
- Afirma que o XSLT ainda contribui para usos diversos e criativos da web, e que sua remoção pode levar ao enfraquecimento da Open Web
- Enfatiza o princípio de que “a web é de todos nós”, defendendo a necessidade de respeitar sua história e diversidade
Apoio e medidas posteriores
- domenic (2025-08-19): reagiu positivamente e apontou a necessidade de atualizar também as menções a XSLT na especificação DOM
- mfreed7 (2025-08-19): respondeu que enviará um PR separado também para a especificação DOM
Resumo
- A remoção do XSLT é uma mudança proposta como parte dos esforços de simplificação e modernização dos navegadores
- No entanto, os opositores temem danos à compatibilidade de documentos existentes, à acessibilidade de dados governamentais/acadêmicos e à diversidade da web aberta
- A discussão atual vai além de uma simples escolha técnica e se estende a um debate filosófico sobre quem deve ter o poder de decidir os padrões da web
1 comentários
Opiniões no Hacker News
Há alguns pontos dignos de nota
Esta decisão não é uma ação unilateral do Chrome, e é possível confirmar no rastreamento da issue e nos registros das reuniões de padronização relacionadas que representantes de todos os principais navegadores demonstraram apoio
A pauta recente também foi proposta por um engenheiro da Mozilla
O envio do PR não significa que ele será mesclado imediatamente, e ainda restam várias tarefas não resolvidas
Mas, como vários fabricantes de navegadores concordam, há grande chance de ele ser mesclado
A issue que discute se o XSLT deve ser removido da plataforma web não é para coletar opiniões da comunidade, mas sim uma issue de discussão para os mantenedores da especificação HTML
Essa issue foi aberta por um engenheiro do Chrome, mas o fato importante é que engenheiros da Mozilla levantaram esse tema várias vezes em reuniões e já havia consenso entre os vendors
Já foi encontrada uma vulnerabilidade de segurança grave
O mantenedor principal do libxslt também renunciou diretamente
Removeram a palavra Chrome do título
O título enviado originalmente era "Chrome intends to remove XSLT from the HTML spec"
Segundo os dados de telemetria do Chrome, quase não há sites que realmente usem XSLT
Pelo menos os dados indicam que a proposta não teria grande impacto na web como um todo
Sou um desenvolvedor que trabalhou no passado na Mozilla e no Google (equipe do Chrome)
Entendo que Chrome/Blink, Safari/Webkit e Firefox/Gecko apoiam a remoção do XSLT, mas dois projetos têm falta de recursos, e um deles tem forte tendência a empurrar novos recursos de forma agressiva
Também há motivos para desenvolvedores do Safari e do Firefox verem essa mudança com bons olhos
O importante não é se "pessoas com autoridade acham que é uma boa ideia", mas sim se "essa ideia terá impacto negativo na plataforma web e em bilhões de usuários"
Mesmo que só 0,1% de bilhões de pessoas dependam disso, ainda é uma escala significativa
Se ninguém usa, não haveria motivo para existir um polyfill
Não é desejável transformar a adição de novas funcionalidades em um jogo de soma zero no qual seja obrigatório remover recursos existentes
O Google está escolhendo deliberadamente não oferecer suporte a XSLT, apesar de ter capital e equipe suficientes
Muitas vezes já houve casos em que algo avançou imediatamente porque vários vendors concordaram
Foi assim com a remoção de
confirm/prompt, mas no fim ficou adiada por tempo indeterminadoExiste um documento oficial do Google sobre o processo de remoção de funcionalidades afiliadas
Google feature removal doc
O "apoio isolado dos vendors" não examinou adequadamente o uso real
Pelas duas threads que li, o Google pediu feedback, mas quase todo o feedback foi "não façam isso"
Mesmo assim, o Google respondeu algo como "obrigado pela opinião, mas vamos fazer mesmo assim!"
Se a questão fosse segurança, havia várias alternativas, como apoiar o open source, trocar por uma biblioteca mais segura ou manter isso dentro de um sandbox JS, mas a maioria foi ignorada
Também houve pedidos contínuos por suporte a versões mais recentes, como XSLT 3.0, mas eles não foram atendidos
Embora o XSLT seja uma tecnologia que apoia a web aberta, o Google vem reduzindo o suporte e deixando isso de lado há 10 anos, enquanto tenta removê-lo com base na queda de participação
Agora que o XSLT está voltando a ganhar popularidade, fica a sensação de que querem matá-lo antes que apareça um concorrente aberto
Issue relacionada
Quanto à afirmação de que muito do feedback foi "não façam isso", aquela thread foi bloqueada cedo por comentários maliciosos, ataques pessoais etc.
Opiniões como "isso é uma boa ideia" normalmente não aparecem muito, então pode parecer que só há oposição
Todo mundo se comportou de forma extrema e a discussão acabou sendo encerrada, algo que foi provocado pelos próprios participantes
Se os comentários de "por favor, não façam isso" não vierem de usuários reais ou não conseguirem explicar por que isso é necessário, é razoável que a equipe de desenvolvimento os ignore
Um pedido de feedback não é simplesmente uma votação de sim ou não
Seria bom se fosse possível levar o suporte a XSLT 3.0 para um sandbox JS/wasm
Haveria alguma perda de desempenho, mas daria para aproveitar o melhor dos dois lados
O XML, por características como esquemas versionados e namespaces, é relativamente fácil de integrar
Ao contrário de frameworks JS como Angular, ele permite contratos de dados altamente confiáveis
Graças à maturidade da família XML, há muitas ferramentas especializadas, então na prática nem é preciso lidar manualmente com XML/XSD como texto
O Google costuma anunciar antecipadamente o que vai acontecer na web em forma de "pergunta"
Apresentação de threads relacionadas anteriores
Thread sobre a remoção do XSLT
XSLT - um sistema de build nativo e sem configuração para a web
Há também outra thread marcada por flag relacionada ao tema
Google is killing the open web, today
Fico em dúvida se o navegador realmente precisa ter suporte embutido para um mecanismo de templates específico (XSLT)
Não é um mecanismo de texto como o Jinja, e também pode ser reimplementado em JS/wasm
Hoje os navegadores estão pesados demais, e criar novos engines é difícil
Eu gostaria que houvesse apenas um padrão mais simples para "navegadores mínimos" (tags básicas, layout etc.)
WebAudio, Canvas e afins também poderiam ser implementados como módulos wasm (e assim ainda evitar fingerprinting)
XSLT é uma "especificação" para um mecanismo de templates, não um engine específico, e existem várias implementações
A Mozilla usa transformiix em vez de libxslt
Jinja lida apenas com texto simples, enquanto XSLT opera no nível de nós e é muito superior
Transformações em JS são muito mais lentas do que transformações nativas em XSLT, e também é mais difícil fazer cache do resultado
Eu até entendo a visão de que o XSLT é ultrapassado, mas o usei muito bem como arma secreta de desempenho nos últimos 20 anos
No fim, há grande chance de o Google tentar encobrir o problema com alguma alternativa como AMP
Os navegadores são pesados por culpa do Google
XSLT é uma linguagem (spec), não um engine
Mudar a implementação para JS/wasm é uma questão de implementação interna, e não o que acontece quando se remove a linguagem da plataforma web
Áudio e canvas são funcionalidades fundamentais de I/O do navegador; movê-las para wasm causaria sérios problemas de desempenho e compatibilidade
Talvez parte do áudio pudesse ser levada para um blob wasm, mas mover tudo seria difícil
Contexto de canvas e WebGL dependem de integração direta com a GPU, então não dá para realizá-los em wasm
No fim, essas funcionalidades já são praticamente APIs primitivas básicas, então são uma área inegociável
Também se discutiu a ideia de empacotar código XSLT antigo em wasm para manter compatibilidade sem quebrar sites antigos
De fato isso foi analisado internamente, mas decidiu-se não seguir por esse caminho
Acho que funcionalidades muito pouco usadas e distantes do núcleo da web podem ser candidatas à remoção
Mas não concordo em usar vulnerabilidades de segurança como justificativa
Sem sequer verificar se existe um pacote memory-safe, isso perde força como argumento
Há quem diga que o uso real está na faixa de 0,001%
Quebrar a promessa básica da especificação HTML é algo extremamente sério
É até surpreendente que a discussão não trate isso em profundidade
HTML era a promessa de "isto é HTML. Você pode confiar", mas agora vira "isto é HTML por enquanto, sem garantia de que continue sendo no futuro"
Se a lógica para remover XSLT vale, então outras tecnologias antigas também poderão continuar sendo cortadas
No fim, é uma proposta para cortar a "long tail" da web
Também é preciso pensar que várias tecnologias web adicionadas mais tarde podem se tornar outra long tail e gerar ainda mais remoções no futuro
Em relação ao suporte a mídias e softwares antigos, acredito que em algum momento chega a hora de resolver isso com portabilidade, emulação, arquivamento etc.
É preciso equilíbrio entre dar tempo e ferramentas suficientes para adaptação e evitar o acúmulo gradual de complexidade
Ao ver o trecho removido no PR, não parece haver uma exigência explícita de que HTML tenha suporte a XSLT
A reação parece estar mais ligada ao problema de suporte nos navegadores
O próprio PR é surpreendentemente curto
Como o WHATWG define o HTML como um "Living Standard", na prática ele já não funciona mais como um padrão de implementação, e sim como um meio de compartilhar o estado atual do que os vendors de navegadores estão fazendo
Por isso também deixaram de usar designações de versão como HTML5, passando a usar apenas "HTML"
Living Standard FAQ
HTML standard FAQ
Ironicamente, quem mais empurrou enormes quantidades de funcionalidades para dentro das specs de HTML/CSS/navegadores foi justamente o Google
Se o Google tivesse defendido de forma consistente que "navegadores devem ser leves e as coisas estranhas devem ficar em bibliotecas JS", esta medida seria até compreensível, mas não foi isso que aconteceu
Desde a remoção do suporte a FTP, o destino do XSL já era previsível
Os navegadores tendem a priorizar acima de tudo a redução da superfície de ataque
Acho que os próximos candidatos à remoção podem ser atributos de animação SVG SMIL, MathML e outras funcionalidades ligadas a XML
Thread relacionada
O SMIL permite controlar animações sequenciais com base no momento de início e término de animações específicas, algo que as animações CSS ainda não cobrem bem
Em CSS, fora usar cálculos, não há muito como fazer isso
O Chromium também já demonstrou intenção de remover o SMIL, mas era cedo demais porque o CSS não era suficiente
Como consequência, vários avisos e documentos sobre SMIL ficaram abandonados sem atualização
Eu questionaria se reduzir a superfície de ataque é de fato algo bom ou ruim
Engenheiros e usuários comuns têm prioridades diferentes
Fico curioso sobre quando exatamente ocorreu a remoção do FTP
Pelo que sei, ainda dá para acessar
ftp://pela barra de endereçosAs implementações de XSLT no Blink e no WebKit são muito ineficientes
Embora esta decisão seja lamentável, é ainda mais triste que não tenham investido em uma integração mais moderna do XSLT
Era desconfortável de usar, mas, se tivesse evoluído um pouco mais dentro do navegador, talvez pudesse ter se tornado um concorrente à altura de frameworks como React
O XML, sem a complexidade corporativa das grandes empresas, era uma tecnologia realmente poderosa e elegante como padrão
Eu gostava muito de usar XSLT para transformar diretamente xml/dados pequenos e simples em html
É uma pena pensar que, com apenas alguns recursos adicionais, como destacar de forma diferente apenas o item selecionado, isso poderia ter sido útil até para documentos estáticos
Dizem que o @whatwg bloqueou a issue para apenas colaboradores, alegando que a discussão "esquentou demais"
À primeira vista ela parecia bem razoável e calma, então dá a impressão de que o critério para "acalorado" talvez mude dependendo de quão favorável se é a um vendor específico
A expressão "esquentou demais" muitas vezes é interpretada como "não queremos lidar com opiniões contrárias"
Em outras comunidades, como o Reddit, acontece a mesma coisa
Na prática, o único comentário que restou ali embaixo foi de um desenvolvedor do Google Chrome dizendo algo como "bom trabalho"
Fica um pouco constrangedor de ver
Mencionam casos em que a issue tracker foi inundada com xingamentos, teorias da conspiração e mensagens políticas
Desse jeito, a discussão produtiva se torna impossível, e os mantenedores do repositório acabam tendo de bloquear rapidamente o debate
Ouvi dizer que a decisão de travar a discussão no repositório foi, na verdade, tomada por um funcionário da Apple
Mas as pessoas estariam atribuindo a responsabilidade ao funcionário do Google que abriu a issue
O Google recentemente abriu uma discussão pública em nome de ouvir a comunidade, mas depois está tentando impor a mudança ignorando todas as opiniões
Issue relacionada
É preciso refletir de forma mais ampla sobre elementos antigos da web
No meu caso, há muito valor em continuar tendo páginas antigas funcionando corretamente
Graças à compatibilidade preservada por HTML/JS, até páginas com décadas de idade continuam funcionando normalmente se você apenas adicionar um certificado TLS
Mas também não é possível manter para sempre suporte a toda tecnologia legada
O Flash acabou migrando para uma experiência via emulador (Ruffle), para reviver jogos e sites nostálgicos
No longo prazo, usar navegadores dedicados ou emuladores especializados em renderização antiga também pode ser uma alternativa
Já surgiu até uma extensão polyfill de XSLT para isso
O Chrome não quer distribuí-la oficialmente nem fazer sua manutenção
É uma situação muito parecida com a do Ruffle