Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

3
respostas

[Dúvida] dicas de como resolver essa questão de acessibilidade do html?

Eu fiquei na dúvida de como tratar esta questão do html apontada pelo lighthouse

Document does not have a main landmark.

3 respostas

Olá, Esperidião, como vai?

Essa indicação do Lighthouse significa que o documento não possui uma região principal identificada semanticamente. Para corrigir, você pode utilizar a tag <main> para envolver o conteúdo principal da página, ou seja, aquilo que representa o objetivo central daquele documento. Por exemplo, se a página possui um cabeçalho, uma navegação e depois o conteúdo da jornada de viagens, esse conteúdo pode ficar dentro de <main>.

<header>
  ...
</header>

<nav>
  ...
</nav>

<main>
  <!-- conteúdo principal da página -->
</main>

<footer>
  ...
</footer>

A vantagem não é apenas fazer o Lighthouse deixar de apontar o aviso. Elementos semânticos como <main> ajudam tecnologias assistivas, como leitores de tela, a entenderem a estrutura da página e permitem que a pessoa navegue diretamente até o conteúdo principal. O ideal é ter apenas um <main> por página e não utilizá-lo para envolver elementos que aparecem repetidamente em várias páginas, como navegação ou rodapé.

No seu projeto, qual parte do HTML você considera que representa o conteúdo principal da página de viagens?

Se precisar analisar a estrutura ou tiver outras dúvidas de acessibilidade, o fórum está à disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Por que usar

?

Não é simplesmente para "agradar" o Lighthouse.

O HTML semântico permite que tecnologias assistivas entendam melhor a estrutura da página.

Um leitor de tela pode interpretar:

→ cabeçalho → navegação → conteúdo principal → rodapé

Assim, uma pessoa que utiliza leitor de tela pode pular diretamente para o conteúdo principal, sem precisar ouvir novamente todo o menu de navegação.

Legal! Eu ainda não sabia do main

aproveitando ainda dentro de acessibilidade, ontem eu tive uma dúvida a respeito dos titles das ancoras:

<div class="footer-social">
        <p>Acesse nossas redes:</p>
        <a
          href="#"
          target="_blank"
          title="Entre em contato através do whatsapp"
        >
          <img src="img/Whatsapp.svg" alt="icone do Whatsapp na cor branca"
        /></a>
        <a
          href="#"
          target="_blank"
          title="Acesse o Instagram do Jornada Viagens"
        >
          <img src="img/Instagram.svg" alt="icone do Instragam na cor branca"
        /></a>
        <a
          href="#"
          target="_blank"
          title="Acesse o Twitter/X do Jornada Viagens"
        >
          <img src="img/Twitter.svg" alt="icone do Twitter/X na cor branca"
        /></a>
      </div>

Não ficaria muito repetitivo para o leitor de página essa sequência de textos?

  • Acesse nossas redes
  • Entre em contato através do whatsapp
  • Acesse o Instagram do Jornada Viagens
  • Acesse o Twitter/X do Jornada Viagens

Não seria mais interessante, desta maneira?

  • Acesse nossas redes
  • Whatsapp
  • Instagram
  • Twitter/X

usando o gemini como copiloto, ele tinha recomendado esse html para esta seção:

<div class="footer-social">
  <p>Acesse nossas redes:</p>

  <a href="#" target="_blank" rel="noopener noreferrer">
    <img src="img/Whatsapp.svg" alt="WhatsApp" />
  </a>

  <a href="#" target="_blank" rel="noopener noreferrer">
    <img src="img/Instagram.svg" alt="Instagram" />
  </a>

  <a href="#" target="_blank" rel="noopener noreferrer">
    <img src="img/Twitter.svg" alt="X (Twitter)" />
  </a>
</div>

o gemini até relata que o conteúdo como estava, a remoção do title junto com um alt bem enxuto é o que resolve a acessibilidade ("metralhadora de voz").

sobre o main, qual parte vocês inseririam do jornada viagens? Eu particularmente, pensei em inserir o conteúdo após o hero e antes do bottom-hero (por considerar que tanto o hero quanto o bottom-hero poderiam não ser proveitoso.)

segue o meu repositório no github:

https://github.com/ervcit-hub/jornada-viagens