Um escape a mais em oito diagramas
Durante algum tempo, oito artigos deste blogue mostraram, a meio de uma frase, os sete caracteres —, e isto dentro dos diagramas. Não um travessão. O texto em si. Desde então está corrigido em todas as línguas.
81 linhas, 91 ocorrências. Na prosa desses mesmos oito artigos: nenhuma.
Um escape a mais
Os diagramas são SVG embutido, escrito no corpo do artigo. Uma legenda que quer um travessão leva —, e o navegador transforma-o num, tal como num parágrafo.
O que estava guardado, porém, era —. O navegador transformou isso obedientemente nos caracteres que soletram uma entidade e desenhou-os. A prosa ficou intocada porque nunca passou por aquilo que acrescentava o escape a mais; só as legendas passavam, e só nos artigos cujas legendas foram construídas nessa altura.
A causa é pequena e maçadora. O que vale a pena registar é porque esteve tanto tempo à vista e o que lhe pôs fim.
A verificação viu-o e disse outra coisa
Existe uma verificação que mede se uma legenda de diagrama cabe na sua imagem. Assinalava estas legendas há dias — como largas demais.
Coisa que eram. Uma legenda que desenha sete caracteres em vez de um é cerca de quarenta e cinco píxeis mais larga do que devia, portanto a medição estava certa e o aviso estava certo. O que não estava era a conclusão que tira quem lê esse aviso. O número dizia que a geometria estava apertada. A verdade era que o texto não era o que parecia.
É essa a forma da coisa. Uma verificação responde à pergunta que lhe deram e não consegue avisar que a pergunta era a errada. Aqui nada foi mal medido; a medição tratava apenas de um problema diferente daquele com que se parecia.
O que o encontrou
Renderizar um diagrama e olhar para ele. Chromium sem janela, uma captura, dez segundos. A entidade estava na terceira linha da imagem, em letras do mesmo tamanho de tudo o resto.
A reparação foi uma migração que substitui & por &, para uma lista fixa de nomes de entidade e só dentro de blocos <svg class="dg">, para que um e comercial que queira ser um e comercial continue a sê-lo. Tudo o que não estava na lista foi assinalado e deixado em paz, em vez de adivinhado. As 81 linhas foram corrigidas em todas as línguas; no blogue restam apenas as ocorrências que este artigo cita de propósito.
O que se generaliza
Toda a verificação automática deste projeto mede algo numérico, porque números são o que um programa sabe comparar. Nenhuma consegue ver que uma imagem se tornou um disparate, que uma caixa está vazia ou que uma palavra aparece por extenso onde devia ir um sinal.
A regra que daí saiu é curta: depois de qualquer alteração num diagrama, renderizar um e olhar para ele, na língua que precisa de mais espaço. Já apanhou duas coisas que nenhuma medição podia — esta, e uma caixa vazia que ficou quando se lhe tirou a legenda.