Pergunta de entrevista para Desenvolvedor React

Como você construiria um modal acessível em React?

O que o entrevistador está avaliando, como estruturar sua resposta e um exemplo falado que você pode adaptar.

Resposta rápida

Use o elemento nativo dialog com showModal onde der, já que ele te dá a top layer, o aprisionamento de foco e o tratamento do Escape de graça. Caso contrário você precisa de role dialog com aria-modal, um título rotulando o diálogo, foco movido para dentro do diálogo na abertura e devolvido ao gatilho no fechamento, um focus trap, Escape para dispensar, e o fundo tornado inerte para que leitores de tela e o Tab não passeiem por lá.

Por que os entrevistadores perguntam isso

Modais são o teste padrão de se um candidato trata acessibilidade como trabalho de verdade ou como item de checklist adicionado depois. O entrevistador quer ouvir sobre gerenciamento de foco especificamente, porque é isso que a maioria das implementações erra, mais consciência de que a plataforma hoje resolve boa parte disso. Mencionar portals, travar o scroll e devolver o foco mostra que você já entregou um que sobreviveu a uma auditoria.

Como estruturar sua resposta

  • Recorra à plataforma primeiro: o elemento dialog e o showModal.
  • Liste os requisitos: rotulagem, foco entrando e saindo, Escape, fundo inerte.
  • Mencione portals e problemas de empilhamento ou de scroll.
  • Diga como você verificaria, só com teclado e com um leitor de tela.

Exemplo de resposta

Exemplo falado, em primeira pessoa

Meu primeiro movimento é não construir. O elemento nativo dialog com showModal cuida da top layer, então eu paro de brigar com z-index e ancestrais com overflow hidden, e ele me dá Escape e o fundo inerte sem nenhum código meu. Em cima disso eu ainda rotulo, com aria-labelledby apontando para o título, e movo o foco para um primeiro elemento sensato na abertura, normalmente o título ou o primeiro campo em vez do botão de fechar. No fechamento eu devolvo o foco para o que abriu, porque perder o foco para o body é o que de fato deixa usuários de teclado à deriva. Se eu tiver que fazer na mão por razões de navegador ou de design, então é role dialog com aria-modal true, um focus trap de verdade no Tab e no Shift Tab, Escape e clique no backdrop para dispensar, inert no resto da página, e travamento de scroll que não desloca o layout. Eu testo só com teclado primeiro, depois com um leitor de tela, porque essa combinação pega quase tudo que um verificador automático deixa passar.

Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.

Veja como funciona

Perguntas de acompanhamento que você pode esperar

  • Como você lida com dois diálogos empilhados?
  • O que dá errado quando um modal não é renderizado num portal?
  • Como você anunciaria um erro assíncrono que aparece dentro do diálogo?

Mais perguntas para Desenvolvedor React

Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.

Prever minhas perguntas

Ensaie as perguntas difíceis antes que elas apareçam

Pratique com um copiloto ao vivo e depois entre pronto. Um Session Pass de $29 te leva até o fim da entrevista, sem assinatura e sem amarras.

Instalar o GhostPilot