Aprender qualquer linguagem de programação é aprender como depurá-la. Mas um comando malformado em Python geralmente retorna uma mensagem de erro que impede a execução do código, e não algo que falha brilhantemente, mas monstruosamente, superando as intenções de seus criadores. Com HTML, somos todos Doutor Frankenstein.
Um dos meus sites favoritos de todos os tempos é o Guia de solução de problemas de bordado. Hoje em dia está disponível apenas através do Arquivo da Interneta menos que (como eu) você tenha uma cópia local. No topo, parece um site típico, embora um tanto antiquado, de uma pequena empresa. Mas quando você olha para baixo, você imediatamente percebe algo estranho nisso. O texto, todo alinhado ao centro em Arial vermelho e azul alternado, vai ficando cada vez maior, com frases forçadas a quebrar linhas ou chegar ao limite no meio da palavra, preenchendo a tela como Alice tentando se espremer por portas cada vez menores no País das Maravilhas. .
Ao visualizar o código-fonte (algum outro programa tornou tão fácil a visualização do código-fonte como um site?), você descobrirá rapidamente o que há de errado. Cada linha de texto centralizado começa com
ou
tags de cabeçalho que nunca fecham. Cada tag de cabeçalho – que estabelece apenas um tamanho relativo, não absoluto, parte da riqueza semântica da gramática flexível da web – baseia-se na última, criando bonecos de nidificação progressivamente maiores. A tag projetada para definir a hierarquia textual fica descontrolada, criando o caos. O fato de as próprias palavras tratarem de como e por que os fios podem se romper faz com que seja poesia.
Por si só, o Guia de solução de problemas de bordado seria uma peça de arte conceitual bastante inteligente. Mas, visualizando a fonte, baixando o arquivo e substituindo as instruções para solucionar problemas comuns de costura por qualquer texto que desejar, você pode personalizar essa arte. Gosto de colocar a minha poesia preferida, descontextualizando-a e obrigando-me a lê-la com novos olhos.
Sites “quebrados” como esses derrubam a grande conquista do HTML semântico. À medida que se desenvolveu, o HTML semântico separou cada vez mais a estrutura da apresentação: em vez de tags, que especificam estritamente que um texto seja apresentado em itálico, usamos tags para identificar ênfase (ou tags para títulos de livros ou filmes, etc.). Esses elementos podem então ser apresentados em itálico na tela do computador, mas podem ser lidos com uma entonação diferente por um leitor de tela. O Guia de Solução de Problemas de Bordado sequestra uma etiqueta semântica e faz com que ela apresente algo inesperado. Os mesmos blocos de construção que permitem que um único site seja exibido de forma responsiva em um pequeno telefone ou em uma enorme tela de televisão podem tornar um site fundamentalmente indisponível. Isso é delicioso.
Aprecio a utilidade dos sistemas de gerenciamento de conteúdo e de sites complexos que geram HTML dinamicamente, mas é uma alegria criar sites a partir de arquivos HTML simples que você pode editar manualmente. Eu ainda edito meu próprio site dessa forma, arrumando-o para poder ver cada tag, seção e quebra de parágrafo. Adoro até editar meus próprios e-books, transformando PDFs em arquivos EPUB baseados em HTML bem formatados que nunca são publicados para ninguém: minha própria biblioteca particular de sites independentes. Durante o auge da pandemia, editar esses arquivos e suas folhas de estilo manualmente foi um bálsamo.
Em última análise, mesmo que o HTML tenha se tornado domínio dos profissionais, ele não pode ser controlado. É isso que deixa tantos programadores tão preocupados com a web, e às vezes pateticamente desesperados para manter os muros reais que ergueram entre engenheiros de software e desenvolvedores web. Mas as pessoas que escrevem HTML sabem que as hierarquias foram feitas para serem destruídas. Basta uma tag que não feche onde você esperava.
O que outros programadores podem dizer com desdém é algo que os amantes de HTML adotam: Qualquer um pode fazer isso. Quer estejamos usando estruturas complexas ou ferramentas muito simples, a promessa do HTML é que podemos construir, criar, codificar e fazer qualquer coisa que quisermos.