O Atributo alt é utilizado no elemento <img> para descrever o conteúdo das imagens presentes num blogue ou site.
Além de ser o que é apresentado quando uma imagem não carrega, serve também para melhorar a acessibilidade e ajuda os motores de busca (SEO) a entenderem o contexto visual, melhorando a sua classificação, aumentando as chances de melhor posicionamento, especialmente no Google Imagens.
No entanto, caso a imagem seja somente decorativa sem pertencer ao contexto de um artigo, mas sim como fundo da página ou ícone, o Atributo alt deve ficar vazio (alt="") ou inexistente.
A parte que importa para este artigo é o texto que é apresentado quando uma imagem não carrega.
Por regra, esse texto segue o mesmo estilo do restante texto da página, mas imagina que querias personalizar esse texto alternativo e somente esse texto. :thinking:
No outro dia estava a pensar nisso e lembrei-me do artigo You can style alt text like any other text do siteCSS-Tricks que aborda esse assunto e sugere um truque bem fixe para possibilitar essa personalização.
Como é óbvio, primeiro temos que nos assegurar que o Atributo alt existe no elemento <img>.
Depois, vamos precisar de colocar um pequeno trecho de JavaScript que detecta quando uma imagem não carrega, e que quando isso acontece, adiciona um atributo à imagem — data-img-loading-error — que já pode ser seleccionado pelo CSS, o que nos permite dar os estilos que quisermos.
No entanto, sempre tento minimizar a dependência destes truques no JavaScript, portanto, na demonstração a seguir, os dois primeiros exemplos são apenas com CSS numa versão alternativa e mais recente do mesmo truque, desta vez publicado no CSS Tip e que aposta no pseudo-elemento ::after para "esconder" o texto alternativo debaixo dum fundo opaco.
A explicação porque este método funciona é porque somente as imagens com carregamento incorreto aceitam pseudo-elementos como ::before e ::after, pelo que esses estilos não se aplicarão a imagens carregadas correctamente, como podes ver abaixo nos dois primeiros exemplos.
DEMONSTRAÇÃO:
<div id="exemplo">
<figure>
<img class="testNOJS" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5MO3hcB0tjptfjkJxDTfJnCeNCtasf_lvUjrAryitx44IVUv4H_liVkK8NjgYyqQIwiba1fuG8Lvy1Ot9HXVI-_aJWpX5Wt4ifeOzKRVmZ9q5NPTRmRQqfi2KBC0-KJEczbAzKueYgKk/s250/DD_Untooned.jpg" alt="Esta imagem carrega normalmente, mas também não está abrangida pelo JavaScript."/>
<figcaption>
Imagem com ligação válida, não abrangida pelo JavaScript
</figcaption>
</figure>
<figure>
<img class="testNOJS" src="https://via.placeholder.com/150" alt="Esta imagem nunca vai carregar, nem está abrangida pelo JavaScript, mas sendo personalizável no CSS com o pseudo-elemento :after." rel="nofollow"/>
<figcaption>
Imagem com ligação inválida, não abrangida pelo JavaScript
</figcaption>
</figure>
<figure>
<img class="testJS" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmFDWbYbIhZf70IUYVHXBLw-9UAlWGjuF0ABFJDi-yqShdf1cJOQhowEaFcq35M-otxcVHj2NaWI38nXSEvQHwJI3vrwj0Zfl9VO3KhzrHYvAncxAB6Dyl2xMIJDjoaoZXAhiGkQeHV8s/s250/RussiaOctobriana.jpg" alt="" />
<figcaption>
Imagem decorativa com o atributo alt vazio
</figcaption>
</figure>
<figure>
<img class="testJS" src="https://via.placeholder.com/150" alt="Esta imagem nunca vai carregar, mas dá-nos a oportunidade de personalizar como o atributo alt se apresenta com JavaScript e CSS tal como outro elemento de texto." rel="nofollow"/>
<figcaption>
Imagem com ligação inválida que não carrega, mas pode ser personalizada através do CSS devido à inclusão do atributo data pelo JavaScript
</figcaption>
</figure>
<figure>
<img class="testJS" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4sEEwose8bV4jH14Igy1z-SKS4uoEdj9GM07mJR3hh_WQB1X2bTQCjkPSgoykspTP5zN7JqEUtzM4DW6PuFftS3XoarzgQqLari1kuk95gurNYBnUmfSlMeZpObEfi0EUQ1xP13Lwjl4bPC3cDV7Xbinzp7AuXdLk-XAxbnNHe9oCxvIx-oeufLroQ3mn/s250/DarkNebulaAustralia.jpg" alt="Esta imagem abrangida pelo JavaScript, mas carrega normalmente não tendo por isso o atributo data." />
<figcaption>
Imagem com ligação válida, carrega normalmente embora contenha o atributo alt com uma descricção para o caso de falhar o carregamento por algum motivo
</figcaption>
</figure>
</div>
Imagem com ligação válida, não abrangida pelo JavaScript
Imagem com ligação inválida, não abrangida pelo JavaScript
Imagem decorativa com o atributo alt vazio
Imagem com ligação inválida que não carrega, mas pode ser personalizada através do CSS devido à inclusão do atributo data pelo JavaScript
Imagem com ligação válida, carrega normalmente embora contenha o atributo alt com uma descricção para o caso de falhar o carregamento por algum motivo
Podem perguntar qual a vantagem de personalizar o Atributo alt...
Nenhuma, trata-se apenas de estética; no entanto, existem pessoas que apreciam e optam por diferenciar esses aspectos. 8)
Então qual é a melhor maneira de usar o Atributo alt?
Ruim: <img src="laranja.jpg" alt=""/>
Valor do atributo vazio, falta o texto alternativo.
Mau:<img src="laranja.jpg" alt="laranja laranjas laranjas alaranjadas cesto com laranjas laranjas grandes laranjas maduras e boas"/>
Muitas palavras, descrição sem fazer sentido e confuso.
Bom: <img src="laranja.jpg" alt="laranjas"/>
Valor do atributo curto, mas acertado.
Melhor:<img src="laranja.jpg" alt="um cesto com laranjas grandes"/>
Valor do atributo detalhado e directo ao assunto sem exagerar com informação desnecessária.
Resumindo:
Quando utilizar: Em imagens inseridas no artigo, escrevendo uma descrição clara, concisa (até um máximo de 125 caracteres), e relevante ao contexto da página.
Evitar começar com "imagem de..." ou "fotografia de...".
Quando não utilizar: Em imagens decorativas, como fundos ou ícones.
Se quiserem deixar o link para o vosso sitio, utilizar alguns estilos ou até inserir videos ou imagens nos comentários DEVEM mesmo ler as indicações nas Regras dos Comentários.
Caso prefiras comentar numa nova janela, ou se o formulário abaixo estiver nos dias ruins, podes clicar aqui.
Comentários
Malta, comentem, tanto críticas como elogios serão bem-vindos. E eu respondo, não prometo quando mas respondo.
Mas antes de comentarem, leiam as minhas Regras dos Comentários.
Se quiserem deixar o link para o vosso sitio, utilizar alguns estilos ou até inserir videos ou imagens nos comentários DEVEM mesmo ler as indicações nas Regras dos Comentários.
Caso prefiras comentar numa nova janela, ou se o formulário abaixo estiver nos dias ruins, podes clicar aqui.
Enviar um comentário