Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

312
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!