FreeToGenerate.com

Os 22 tipos de input, verificados ao vivo no seu navegador em vez de copiados de uma tabela de compatibilidade, mais a regra que torna invisível um tipo mal escrito. Nada é enviado.

Digite o que você colocaria na marcação. Uma palavra-chave que a especificação não define vira um campo de texto comum, sem nada que avise.

A especificação não define isso. O navegador vai renderizar como um campo de texto comum, em silêncio: sem erro e sem aviso.Resolve para text

Todos os tipos de input22

As 22 palavras-chave que a especificação define, com o nome de estado que ela dá a cada uma. A última coluna é medida no seu navegador, não copiada de uma tabela de compatibilidade.

Palavra-chaveEstadoTipoSeu navegador
hiddenHiddenoutrosVerificando o seu navegador...
textTexttextoVerificando o seu navegador...
searchSearchtextoVerificando o seu navegador...
telTelephonetextoVerificando o seu navegador...
urlURLtextoVerificando o seu navegador...
emailEmailtextoVerificando o seu navegador...
passwordPasswordtextoVerificando o seu navegador...
dateDatedata e horaVerificando o seu navegador...
monthMonthdata e horaVerificando o seu navegador...
weekWeekdata e horaVerificando o seu navegador...
timeTimedata e horaVerificando o seu navegador...
datetime-localLocal Date and Timedata e horaVerificando o seu navegador...
numberNumbernuméricoVerificando o seu navegador...
rangeRangenuméricoVerificando o seu navegador...
colorColoroutrosVerificando o seu navegador...
checkboxCheckboxescolhaVerificando o seu navegador...
radioRadio ButtonescolhaVerificando o seu navegador...
fileFile UploadoutrosVerificando o seu navegador...
submitSubmit ButtonbotãoVerificando o seu navegador...
imageImage ButtonbotãoVerificando o seu navegador...
resetReset ButtonbotãoVerificando o seu navegador...
buttonButtonbotãoVerificando o seu navegador...

Cada linha é verificada pedindo aquele tipo a um elemento input e lendo o que ele diz ser. O que o navegador não implementa volta como texto, que é a mesma regra que torna um erro de digitação invisível.

As palavras-chave e os nomes de estado vêm da tabela do atributo type da própria especificação HTML. Duas colunas dela não são reproduzidas aqui de propósito: ao extraí-las uma linha ficou deslocada, e uma tabela que parece certa e está errada é pior que uma mais curta.

Também disponível em: English · Español · Français · العربية

Tipos de input no HTML

A lista completa dos tipos de input do HTML com os nomes de estado da especificação, o suporte medido no seu próprio navegador e a regra de fallback que esconde os seus erros.

O que são os tipos de input do HTML?

O atributo type de um elemento input escolhe que tipo de controle o navegador desenha, de uma simples caixa de texto a um seletor de data, uma amostra de cor ou um seletor de arquivos. A especificação HTML define 22 palavras-chave, e cada uma nomeia um estado: type=email é o estado Email, type=datetime-local é o estado Local Date and Time, e assim por diante.

É um atributo enumerado, o que obriga a especificação a dizer o que acontece quando o valor é algo que ela não reconhece. E ela diz: o valor padrão por ausência e o valor padrão por invalidez do atributo são ambos o estado Text. Essa única frase é a razão de esta página existir.

Leia com calma e ela cobre duas situações diferentes ao mesmo tempo. Um navegador que não implementou um tipo cai para um campo de texto — e uma palavra-chave que você simplesmente escreveu errado também. As duas produzem uma caixa de texto comum, sem erro, sem aviso no console e sem nada na tela que as diferencie.

Como usar

  1. Digite uma palavra-chave na caixa para verificar. Ela começa com um erro de digitação, porque esse é o caso que vale ver primeiro. A ferramenta diz se a especificação define a palavra-chave e, quando não define, no que ela vai virar silenciosamente.
  2. Leia a tabela. As 22 palavras-chave com o nome de estado que a especificação dá a cada uma, agrupadas pelo tipo de controle que são. A lista é completa, não uma seleção.
  3. Olhe a última coluna. Ela é medida no navegador em que você está lendo, não copiada de uma tabela de compatibilidade. Ela pede cada tipo a um elemento input e lê o que ele diz ser.

Por que uma tabela de compatibilidade é o formato errado para esta pergunta

Quase toda página que responde quais navegadores suportam type=date entrega uma grade de versões. Essa grade fica velha no dia em que é publicada, não sabe qual navegador você usa e muito menos qual os seus usuários usam. Ela responde a uma pergunta sobre o mundo quando você queria uma resposta sobre a sua máquina.

A regra de fallback permite uma resposta melhor. Como um tipo sem suporte se resolve para o estado Text, dá para perguntar direto a um elemento: atribua a propriedade, leia de volta e, se voltar como text, o navegador não aceitou. Três linhas, sem biblioteca, sem farejar versão, e a resposta descreve o navegador que de fato está rodando o código.

É isso que a última coluna faz aqui, e é por isso que ela diz verificando o seu navegador até a página carregar em vez de desenhar um palpite no servidor. O servidor não faz ideia do que você usa; fingir o contrário seria o mesmo erro da grade.

Há uma linha que a verificação não consegue decidir, e a tabela diz isso em vez de esconder. Pedir text devolve text esteja ou não o resto suportado, então aquela linha fica marcada como por definição. Todas as outras são medição de verdade.

O erro de digitação que você nunca vai ver

Das duas coisas que a regra de fallback cobre, o erro de digitação é o que mais dói, porque é inteiramente obra sua e se parece exatamente com sucesso. Escreva type=dat em vez de type=date e você tem um campo de texto. Escreva type=nubmer e você tem um campo de texto. Escreva type=datetime, que já foi uma palavra-chave de verdade e foi removida do padrão, e você tem um campo de texto.

Nada reclama. A página renderiza, o formulário envia, o campo aceita o que você digitar. O que se perde é tudo o que a palavra-chave certa teria dado: o seletor de data, o teclado numérico no celular, a validação embutida, a restrição que impediria enviar um valor absurdo. Num navegador de desktop e em pleno desenvolvimento, um campo de texto onde deveria haver um seletor de data passa semanas despercebido.

É para isso que serve a caixa no topo. Cole o que você escreveu de fato e ela diz se a especificação já ouviu falar daquilo. É uma verificação pequena, e é a única que existe, porque por design o navegador não vai te contar.

Limites assumidos

Suporte não é uma pergunta só. Um navegador pode aceitar um tipo, desenhar um controle para ele e ainda assim se comportar diferente de outro que também aceita: a aparência do seletor de data, se um atributo step é respeitado, como um valor é formatado para o usuário. Esta página responde só à primeira pergunta, a de se o navegador aceitou o tipo. É a que a regra de fallback torna respondível, e não é a história toda.

A tabela também não consegue dizer nada sobre um navegador que não seja o seu. Se você precisa saber o que os seus visitantes recebem, a medição tem de acontecer nos navegadores deles, que é um trabalho diferente do de uma página como esta.

Faltam aqui duas colunas da tabela da própria especificação, e é de propósito. Ela também lista um tipo de dado e um tipo de controle para cada palavra-chave, e ao extraí-las as colunas se deslocaram em pelo menos uma linha: a entrada de file saiu descrevendo um tipo MIME onde vai o tipo de controle. Publicar uma tabela que parece certa e está errada é pior que publicar uma mais curta que está certa, então aqui vão só a palavra-chave e o nome de estado.

Por fim, a especificação muda. Palavras-chave foram acrescentadas ao longo dos anos e pelo menos uma foi removida, então uma lista é uma fotografia do padrão como ele está. A regra de fallback é a parte que não se moveu, e é a que vale lembrar.

Por que é grátis?

A lista é estática e a verificação roda no seu navegador. Não há servidor envolvido, então não há nada para cobrar nem conta para criar.

Nada é enviado e nada é guardado. Recarregue a página e ela terá esquecido o que você digitou.