Pular Para O Conteudo
Em andamentoO primeiro elemento focável da página: leva o teclado direto ao conteúdo principal, por cima da navegação (WCAG 2.4.1). Fica invisível até receber o foco. O PageLayout já o traz.
- Função
- Navegação e estrutura
- Também chamado de
- skip link, pular navegação, ir para o conteúdo, link de salto
- Mora em
- app/components/atoms/PularParaOConteudo.tsx
- Última mudança
- 2026-09-30
Prévia
A peça ao vivo, vinda da ficha, na largura escolhida. Em larguras fixas, ela roda num quadro do tamanho de uma tela de verdade.
1280px, em tamanho real
Variantes na ficha
Lidas da ficha no build, na ordem do palco. Cada uma abre sozinha, sem o styleguide em volta — é o endereço que o palco carrega.
Quando usar
Em toda página com navegação repetida antes do conteúdo — no site, pelo PageLayout, que já o inclui.
Faça
- Ponha-o como o primeiro elemento da página, antes da Navbar.
- Marque o conteúdo principal com o mesmo
iddoalvo(padrãoconteudo) etabIndex={-1}, para ele receber o foco. - Monte a página com o PageLayout, que já faz as duas coisas.
Evite
- Mais de um por página: o primeiro Tab tem de ser sempre este.
- Escondê-lo com
display: none: aí ele não recebe foco; osr-onlyda peça esconde sem tirar do Tab.
Quando não usar. Dentro de uma seção ou de uma peça: é um por página, o primeiro foco. Para pular dentro de uma página longa (as seções do curso), o CourseTabs.
Anatomia
As partes, na ordem em que o olho — e o teclado — passam.
- Link — Recortado (`sr-only`) até o foco; com foco, aparece no canto de cima, em `--card`, com sombra e o anel, acima de tudo (`--z-pular-para-o-conteudo`).
- Alvo — O `<main>` com o `id` do `alvo` e `tabIndex={-1}`.
Estados
Os estados que a peça tem no código, e o que muda em cada um.
| Estado | O que muda |
|---|---|
| Sem foco | Invisível, mas presente para o leitor e para o Tab. |
| Com foco | Aparece no canto de cima, com 44px de altura. |
Comportamento
| Situação | O que acontece |
|---|---|
| Primeiro Tab da página | O link aparece com o foco — testado na ficha. |
| Enter | O foco vai ao conteúdo principal, e o próximo Tab continua de lá — testado na ficha. Sem JavaScript, o href leva até lá. |
Relacionados
Como usar no código
A importação e o menor uso, lidos do arquivo. O … marca as props obrigatórias.
import { PularParaOConteudo } from '@/app/components/atoms/PularParaOConteudo';
<PularParaOConteudo>…</PularParaOConteudo>Propriedades
Lidas do código da peça no build — não escritas à mão.
| Prop | Tipo | Padrão | Obrigatória | Descrição |
|---|---|---|---|---|
alvo | string | 'conteudo' | não | O id do conteúdo principal, sem o # (padrão conteudo). O alvo precisa de tabIndex={-1}. |
Aceita também: Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'>.
Tokens de cor
Os tokens semânticos que o código da peça usa, com o valor de hoje em app/globals.css.
| Token | Valor | Usado como |
|---|---|---|
--card | #FFFFFF | bg-card |
--foreground | #1A1A1A | text-ink |
--ring | var(--footer-red)), decisão da revisão 2. Se outra peça precisar
* dele como superfície, o nome vira de papel (ex.: --surface-brand-strong). */
--footer-red: #7D1B1B | ring-ring |
Teclado
| Tecla | Faz |
|---|---|
| Tab | Primeira parada da página: o link aparece. |
| Enter | Leva o foco ao conteúdo principal, por cima da navegação. |
Leitor de tela
O que é anunciado, e por quê.
- Cumpre a WCAG 2.4.1 (pular blocos): sem ele, quem usa teclado atravessa as mais de trinta paradas da Navbar em cada página.
- O foco vai ao alvo por JavaScript, além do
href: nem todo navegador move o foco num salto de âncora.
O que sustenta o estado
Esta peça usa estatico. O estado dela é o de quem já foi ouvido com leitor de tela nesses padrões — e não uma passada sobre esta peça em específico.
Falta ouvir: estatico — ver docs/a11y-screen-reader-checklist.md.
Status e recursos
| Tipo | Recurso | Status |
|---|---|---|
| Código | app/components/atoms/PularParaOConteudo.tsx | Disponível |
| Ficha | Storybook (abre em outra aba) | Disponível |
| Teste de acessibilidade | axe em npm run test | No gate de todo commit |
| Leitor de tela | Passada da E33 | Falta ouvir |
| Design | Figma | Desativado até a Fase 2 |
Histórico
Os últimos commits que tocaram o arquivo, lidos do git no build.
0298af82026-09-30E147: fechamento da Entrega 11 — REPORT.md, verificação cross-agent e o gate estático estrito
O histórico completo está no GitHub (abre em outra aba).