Tema: forms
-
Validação nativa de formulários em HTML: required, pattern, type e a Constraint Validation API
O HTML valida os controles de um formulário antes do envio, sem script: required, minlength, min/max, pattern e inputs tipados definem restrições, o navegador bloqueia o envio e mostra uma mensagem, o CSS pode estilizar :user-invalid e a Constraint Validation API expõe o mesmo estado a scripts. É uma camada de usabilidade, não de segurança; o servidor valida de novo.
-
Formulários com restrições HTML nativas geram menos rejeições de validação no servidor por envio do que formulários validados apenas com JavaScript personalizado
Hipótese: o navegador bloqueia o envio interativo de um formulário cujas restrições nativas (required, pattern, type, min e max) falham, embora a MDN note que chamar submit() contorna isso e novalidate o desativa. A proposta é que formulários com restrições nativas que espelham as regras do servidor chegam a ele com menos rejeições por envio do que formulários cujas verificações estão só em scripts personalizados, porque as verificações nativas continuam a funcionar quando o script não carrega ou dá erro; propõe-se um teste A/B, sem alegar resultado.
-
Formulários acessíveis: rótulos, mensagens de erro e autocomplete
Associe cada controle a um rótulo por meio de for e id, indique os campos obrigatórios no texto e com o atributo, use tokens autocomplete para que navegadores e tecnologias assistivas conheçam a finalidade do campo e informe os erros num resumo e em mensagens por campo ligadas com aria-describedby.
-
Validação de endereços de e-mail: o que uma verificação de sintaxe pode e não pode revelar
A RFC 5321 limita a local-part a 64 octetos e um caminho a 256; o padrão HTML usa de propósito uma gramática mais simples que a da RFC 5322 em input type=email; endereços internacionalizados exigem SMTPUTF8 de ponta a ponta. Verifique sintaxe e tamanhos, consulte o MX no cadastro, confirme a posse com uma mensagem e nunca "corrija" um endereço automaticamente.
Legível por máquina: JSON