Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

316
Visualizações
React: ¿Cómo hacer un menú accesible?

Aquí está mi enlace de codesandbox: https://codesandbox.io/s/accessible-menu-ejzte

Tengo un menú que aparece cuando haces clic en un botón. Es funcional, pero me doy cuenta de que es diferente de los ejemplos que encuentro en línea.

Menu.tsx es solo una ul con niños:

 <Container role="menu" id={id} ref={menu_ref} is_visible={open} onKeyDown={handleKeyPress} onClick={(e: React.MouseEvent) => { e.stopPropagation(); onClose(); }} {...rest} > {children} </Container>

MenuItem.tsx es un li con botones en él:

 const MenuItem = ({ start_text, onClick }: MenuItemProps) => ( <Container role="none"> <ClickableWrapper onClick={(e: React.MouseEvent) => onClick && onClick(e)} role="menuitem" > <TextContainer> {start_text && <StartText>{start_text}</StartText>} </TextContainer> </ClickableWrapper> </Container> );

Sin embargo, cuando miro otros sitios web, sus menús se comportan de manera diferente a la mía:

  1. https://www.w3.org/TR/wai-aria-practices/examples/menu-button/menu-button-links.html
  2. https://mui.com/components/menus/

Noté estas diferencias:

  1. El primer elemento del menú se enfoca automáticamente cuando abre el menú al tocar el botón y presionar Entrar
  2. Si el menú está abierto y presiona Esc , el menú se cierra y el botón se enfoca

¿Esta funcionalidad proviene de Javascript? ¿O es el comportamiento predeterminado para los menús que se construyen correctamente?

Pensé que todos los elementos accesibles se podían lograr a través de HTML nativo, pero hasta ahora no puedo encontrar ninguna diferencia entre mi marcado HTML y los 2 ejemplos anteriores, por lo que esto me hace pensar que esto solo se puede lograr a través de JS.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Los ejemplos que proporciona están usando JS.

Ejemplo de w3: para cerrar en Esc , consulte este archivo:

https://www.w3.org/TR/wai-aria-practices/examples/menu-button/js/MenuItemLinks.js Y busque 'ESC'

Y para centrarse en el primer niño, vea estos 2 archivos y busque 'setFocusToFirstItem':

https://www.w3.org/TR/wai-aria-practices/examples/menu-button/js/MenuItemLinks.js https://www.w3.org/TR/wai-aria-practices/examples/menu -button/js/PopupMenuLinks.js

Para el ejemplo de MUI, puede buscar a través del código fuente: https://github.com/mui-org/material-ui/blob/master/packages/mui-material/src/MenuList/MenuList.js

Debe haber actualizado su sandbox porque cerrar en Esc está funcionando (a través de JS).

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda