10 elementos HTML pouco conhecidos
A linguagem de marcação de hipertexto (HTML) possui diversos elementos que podem trazer tanto um estilo diferente quanto deixar a sua página semântica.
Por que ter páginas Web semânticas?
Utilizar elementos semânticos é muito importante para ter uma página Web acessível. Tecnologias assistivas como os leitores de tela, tem um melhor desempenho quando as páginas estão dando sentido aos elementos da tela. Por exemplo, quando você utiliza o elemento <h1>, o usuário que utiliza um leitor de tela pode fazer uma busca pelos títulos da página e também irá saber que este trecho de texto representa um título.
A semântica Web também facilita na Otimização de mecanismos de pesquisa como o Google, por exemplo. Então, ao utilizar estes elementos, a sua página tem uma chance maior de subir algumas posições na pesquisa do Google.
Seguem abaixo alguns elementos HTML que não são muito conhecidos ou utilizados pela comunidade.
1 - Entrada textual do usuário: <kbd>
Este elemento serve para representar uma entrada do teclado (keyboard input), como, por exemplo, as teclas:
A saída será um código semântico e um texto com uma fonte um pouco mais espaçada, mas você também pode estilizar no CSS.
Para saber mais, acesse a documentação do <kbd> na W3C.
2 - Abreviação de palavras: <abbr>
Para abreviar palavras, o HTML nos proporciona este elemento interativo, que permite ao usuário descobrir o significado ao passar o mouse sobre a palavra! Veja um exemplo de uso abaixo:
E esta é a saída do navegador:
Para saber mais, acesse a documentação do <abbr> no MDN.
3 - Exibição de documentos: <object>
Para abrir um recurso externo, como, por exemplo, um arquivo .pdf, podemos utilizar este elemento de forma muito simples. O resultado será uma espécie de “frame” que será renderizado com o conteúdo do seu .pdf, semelhante a aplicação nativa de abertura de um pdf do próprio navegador.
Este elemento existe desde a versão 4 do HTML e proporciona a abertura de diversos recursos externos.
Para saber mais, acesse a documentação do <object> no MDN.
4- Renderizando imagens : <source> e <picture>
Imagine que você deseja mostrar imagens diferentes baseadas no tamanho da tela, você pode fazer isso utilizando os elementos <picture> e <source>. O elemento <picture> serve para envolver múltiplos elementos do tipo <source> para poder exibir a imagem mais adequada para o navegador ou tamanho da tela. Para isso, basta adicionar o atributo “media” no <source> para especificar em qual tamanho de mídia você deseja que a imagem apareça, conforme o exemplo abaixo.
O elemento <source> possui outras funcionalidades e atributos que você pode estar lendo na documentação do <source> no MDN. E também recomendo a leitura do tutorial de Imagens responsivas no MDN.
5- Representação de um valor: <meter>
Este elemento serve para você criar uma representação visual de um intervalo de valores, sendo semelhante ao elemento <progress>. Ele possui alguns atributos como o valor mínimo, máximo e o atual. A partir deles é criada a barra retangular colorida representando o intervalo destes valores, como se fosse uma representação fracionária.
Existem outros atributos para utilizar e enriquecer a utilização deste elemento. Para isso, você pode acessar a documentação do <meter> no MDN.
6- Barra de progresso: <progress>
O HTML já nos disponibiliza um elemento para representar uma barra de progresso de forma simples. Veja como é fácil utilizá-lo no exemplo abaixo:
Para saber mais, acesse a documentação do <progress> no MDN.
7- Caixa de detalhes: <details>
Este elemento se assemelha bastante com o conhecido “collapse” do Bootstrap, trazendo a funcionalidade de colapsar de forma nativa! Sem precisar acrescentar nenhuma linha de Javascript.
Para saber mais:
- Acesse a documentação do <details> na W3C.
- Consulte o suporte ao <details> pelos navegadores antes de começar a implementá-lo.
8- Lista de opções (combo list): <datalist>
O <datalist> é um elemento que serve para você agrupar uma lista de opções, onde o valor escolhido pelo usuário pode ser atribuído a outro elemento.
O exemplo abaixo, assemelha-se a uma combinação de <select> + <input>, onde o usuário consegue realizar um filtro na lista de opções utilizando o <datalist>.
E a sua implementação é bem simples, basta associar a lista de opções ao elemento <input>. Veja:
9- Marcação de texto: <mark>
O elemento <mark> funciona como uma caneta marca texto digital. Por padrão a cor dele é amarelo, mas você pode estar alterando a cor utilizando a propriedade background-color do CSS.
Em artigo chamado “Highlight text with HTML mark tag”, a autora ensina como utilizar este elemento e também destaca a importância da semântica para a Otimização de mecanismos de pesquisa e também para a acessibilidade. Vale a pena dar uma lida, pois ela também dá dicas de como utilizá-lo para leitores de tela.
10- Caixa de diálogo (modal): <dialog>
E se o HTML tivesse um elemento que representa uma caixa de diálogo com o usuário (como, por exemplo, a conhecida “modal”)? Sabemos que a maioria dos desenvolvedores, cria as suas próprias caixas de diálogo utilizando <div>. Mas agora temos um elemento chamado <dialog>, que contém uma forma de utilização muito simples. Basta apenas incluir a propriedade “open” dentro do elemento ou removê-lo para esconder a caixa de diálogo, conforme o trecho de código abaixo:
E o resultado será o seguinte:
E a partir desta caixa de diálogo, você pode customizá-la utilizando CSS.
Também possui alguns métodos que podem ser chamados pelo javascript para abrir e fechar a caixa de diálogo.
Para saber mais:
- Acesse a documentação do <dialog> na W3C.
- Consulte o suporte ao <dialog> pelos navegadores antes de começar a implementá-lo.
Conclusão
Existem pequenas atitudes, como utilizar os elementos semânticos que trazem grandes benefícios para a acessibilidade.
Se você ainda tem algumas dúvidas sobre acessibilidade na Web e não conhece muito bem sobre o assunto, eu escrevi um post chamado: Desmistificando a acessibilidade na Web — o início.
Alguns dos elementos citados são muito novos, e para alguns navegadores mais antigos ainda não há suporte. Por isso, é importante ficar ligado no suporte dos navegadores e verificar se não existem polyfills para eles.
Então, é isso pessoal. Espero que tenham gostado. Até mais!