Skip to main content

Sobre esta regra de acessibilidade

As regiões landmark são áreas estruturais de uma página — como <main>, <nav>, <header>, <footer>, e <aside> — que ajudam os utilizadores de tecnologia assistiva a compreender o layout e navegar rapidamente entre secções. Os leitores de ecrã fornecem teclas de atalho que permitem aos utilizadores saltar diretamente para estes landmarks, facilitando o acesso ao conteúdo de que necessitam.

O elemento <aside> (ou role="complementary") representa conteúdo que complementa o conteúdo principal, como barras laterais, ligações relacionadas, ou contexto adicional. Quando um <aside> está aninhado dentro de outro landmark como <main> ou <nav>, os leitores de ecrã podem não o expor como um landmark de nível superior. Isto significa que os utilizadores que dependem da navegação por landmarks podem não conseguir descobrir ou saltar para esse conteúdo complementar, efetivamente escondendo-o do seu fluxo de navegação.

Este problema afeta principalmente utilizadores de leitores de ecrã, que dependem dos landmarks como uma forma primária de se orientarem e moverem através de uma página. Quando os landmarks estão incorretamente aninhados, a estrutura da página torna-se confusa ou incompleta, reduzindo a eficiência e usabilidade da tecnologia assistiva.

Esta regra relaciona-se com o Critério de Sucesso 1.3.1 das WCAG 2.1 (Informação e Relações), que requer que informação, estrutura e relações transmitidas visualmente estejam também disponíveis programaticamente. Também suporta o Critério de Sucesso 4.1.2 das WCAG 2.1 (Nome, Role, Valor) e a boa prática geral de usar landmarks corretamente para que as tecnologias assistivas possam apresentar a estrutura do conteúdo com precisão.

Como corrigir

  1. Mova os elementos <aside> para o nível superior do corpo do documento, fora de <main>, <nav>, <header>, <footer>, ou qualquer outro landmark.
  2. Verifique role="complementary" em quaisquer elementos e assegure-se de que também estão colocados no nível superior, não aninhados dentro de outro landmark.
  3. Se o conteúdo realmente pertence dentro de outro landmark e não se destina a ser navegável independentemente, considere se realmente precisa de ser um <aside>. Um simples <div> ou <section> sem um role de landmark pode ser mais apropriado.

Exemplos

Incorreto: <aside> aninhado dentro de <main>

<main>
  <h1>Article Title</h1>
  <p>Main article content goes here.</p>

  <aside>
    <h2>Related Links</h2>
    <ul>
      <li><a href="/topic-a">Topic A</a></li>
      <li><a href="/topic-b">Topic B</a></li>
    </ul>
  </aside>
</main>

Neste exemplo, o <aside> está dentro de <main>, pelo que os leitores de ecrã podem não o listar como um landmark de nível superior. Os utilizadores que navegam por landmarks podem perder completamente as ligações relacionadas.

Correto: <aside> no nível superior junto a <main>

<main>
  <h1>Article Title</h1>
  <p>Main article content goes here.</p>
</main>

<aside>
  <h2>Related Links</h2>
  <ul>
    <li><a href="/topic-a">Topic A</a></li>
    <li><a href="/topic-b">Topic B</a></li>
  </ul>
</aside>

Agora o <aside> é irmão de <main>, tornando-o um landmark de nível superior que os utilizadores de leitores de ecrã podem facilmente descobrir e para onde podem navegar.

Incorreto: role="complementary" aninhado dentro de <nav>

<nav aria-label="Main navigation">
  <ul>
    <li><a href="/">Home</a></li>
    <li><a href="/about">About</a></li>
  </ul>
  <div role="complementary">
    <p>Navigation tip: Use keyboard shortcuts to browse faster.</p>
  </div>
</nav>

Correto: role="complementary" movido para o nível superior

<nav aria-label="Main navigation">
  <ul>
    <li><a href="/">Home</a></li>
    <li><a href="/about">About</a></li>
  </ul>
</nav>

<div role="complementary" aria-label="Navigation tips">
  <p>Navigation tip: Use keyboard shortcuts to browse faster.</p>
</div>

Ao manter os landmarks complementares no nível superior da página, você assegura que todos os utilizadores — incluindo aqueles que usam tecnologia assistiva — possam descobrir e navegar para cada secção do seu conteúdo.

Ajude-nos a melhorar os nossos guias

Este guia foi útil?

Detecte problemas de acessibilidade automaticamente

O Rocket Validator examina milhares de páginas com Axe Core e o W3C Validator, encontrando problemas de acessibilidade em todo o seu site.

Pronto para validar os seus sites?
Comece o seu teste gratuito hoje.