Por que `"` apareceu depois de salvar um rótulo duas vezes

Ler o original em inglês

data-integritydebuggingux-designasp-classic

Imagem de capa: Por que `"` apareceu depois de salvar um rótulo duas vezes

O que apareceu na caixa de edição

Manager's "A" Group.

Foi isso que apareceu em uma caixa de edição quando alguém abriu um rótulo de navegação para corrigir um erro de digitação. Um instante antes, o mesmo rótulo estava perfeitamente normal no site. Nada tinha travado e nenhum aviso tinha aparecido. Mas quando vimos “e comerciais” e pontos e vírgulas na caixa onde uma pessoa deveria digitar, percebemos que o problema era maior do que um defeitinho feio na tela.

A primeira correção parou cedo demais

Nossa primeira tentativa foi proteger o texto antes de colocá-lo em uma página da web. Isso era necessário, mas não resolvia tudo. Se alguém digita aspas, um “e comercial” ou um sinal de menor que, o site precisa tomar cuidado com esses caracteres. Senão a página pode confundir um texto comum com instruções. O termo técnico é codificação HTML. Significa trocar certos caracteres por uma versão escrita segura enquanto eles passam por uma página da web.

Essa proteção funcionou quando o rótulo era exibido na navegação, onde ele continuava aparecendo como Manager's "A" Group. Mas ela não levou em conta o rótulo voltando para uma pessoa editar. Era fácil acreditar que o trabalho estava pronto, e essa crença custou tempo e paciência depois.

Então o rótulo voltou pelo formulário de edição.

Por que a caixa mostrava um monte de símbolos

A caixa de edição recebeu a versão escrita segura, Manager's "A" Group, em vez das palavras normais que a pessoa tinha digitado. Uma caixa de edição é mais parecida com um bloco de notas do que com uma página da web. Ela não transforma " de volta em aspas. Ela mostra cada caractere exatamente como o recebe. Para quem só queria corrigir um erro de digitação, o rótulo agora parecia um monte de símbolos de computador.

No começo isso pode parecer inofensivo. A navegação continua certa, e a pessoa pode fechar a janela e seguir em frente. Mas o rótulo estava a caminho de piorar.

Como um salvamento piorou tudo

Assim que alguém mexia nesse campo e salvava, o sistema tratava os símbolos visíveis como se a pessoa os tivesse digitado de propósito. Na vez seguinte em que o rótulo passava pela etapa de proteção, o “e comercial” no começo de " também era protegido. O que era " virava ". Editar e salvar de novo podia acrescentar mais uma camada. Um rótulo curto podia virar aos poucos uma pilhazinha de pontuação.

Essa é a parte que custa tempo e paciência. Uma pessoa que só queria mudar uma letra recebe uma caixa confusa. Alguém precisa explicar por que o texto parece errado. Se o rótulo for salvo na forma danificada algumas vezes, voltar ao original pode exigir uma limpeza manual. O problema nunca se anuncia com um erro. Ele espera por um salvamento comum, feito com a melhor das intenções.

A correção: três etapas

A correção foi pequena, mas a ordem do trabalho importava. Antes de colocar o rótulo salvo na caixa de edição, o sistema transformava as formas escritas seguras de volta nos caracteres que as pessoas reconhecem. &quot; virou ". &amp; virou &. &lt; virou <. A caixa de edição passou a mostrar as mesmas palavras que a pessoa tinha digitado desde o início.

Isso deu ao rótulo três etapas claras. Quando aparece na página da web, ele fica protegido. Quando uma pessoa o edita, ele volta a ser texto normal. Quando é salvo de novo, ele é protegido uma vez, e só uma vez.

O “e comercial” exige cuidado

Havia mais uma complicação. Pense no “e comercial” como uma embalagem em volta de um item frágil. Em &amp;lt;, a parte &amp; pode estar protegendo os caracteres literais &lt; e não representando um sinal de menor de verdade. Se a embalagem for removida cedo demais, a etapa seguinte pode confundir esses quatro caracteres com algo que deveria traduzir. Uma pessoa que digitou &lt; de propósito poderia acabar com <.

Para os rótulos deste caso, o conjunto de caracteres era restrito o bastante para que a sequência existente não causasse problema. Mas isso foi uma sorte de fronteira, e não é uma regra segura para copiar em qualquer lugar. Ao lidar com textos mais abertos, o e comercial deve ser convertido de volta por último (Ler em inglês). Na entrada para o armazenamento, ele deve ser protegido primeiro. Assim uma etapa não destrói o trabalho da outra.

Dois trabalhos para um rótulo

O jeito de enxergar isso é como uma pergunta sobre qual forma da informação deve aparecer na frente de uma pessoa. A versão protegida era a certa para a página. Era a errada para a caixa parecida com um bloco de notas, onde a pessoa precisava fazer uma mudança. São trabalhos diferentes, mesmo quando envolvem o mesmo rótulo.

O estrago veio de tratá-los como o mesmo trabalho. O sistema protegeu as palavras com sucesso para exibição, mas esqueceu de devolvê-las à linguagem comum para edição. Ninguém precisou de uma aula técnica para perceber o resultado. Só precisavam que a caixa de edição mostrasse o que tinham escrito.

As três etapas se sustentaram: protegido na página, simples na caixa, protegido uma vez ao salvar. Um rótulo que antes precisava de limpeza manual depois de algumas rodadas de edição agora aguenta quantas forem, porque o “e comercial” nunca é chamado a fazer dois trabalhos na mesma viagem pelo sistema.

O que conferir no seu site

Olhe qualquer texto que uma pessoa possa editar e confirme que ele aparece para ela na forma simples e é protegido só uma vez ao salvar. Um rótulo que parece certo na página, mas fica mais quebrado a cada edição, indica que falta uma etapa entre a exibição e a edição.

Receba a próxima história de IA no dia a dia

Histórias em linguagem simples sobre usar IA para facilitar o trabalho do dia a dia. Um e-mail curto quando sair uma nova, sem jargão.