Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

478
Vistas
Cómo arreglar el rol interactivo de 'botón' debe ser enfocable

Tengo una lista de opciones desplegables que el usuario puede seleccionar.

Los optinos en el menú desplegable se hacen con la etiqueta: <a href>:

 <a onClick={() => handleSelect(filter)} role="button"> {filter.name} </a>

El problema es que debo agregar tabIndex="0" or -1 para corregir el error de Eslint.

Pero cuando agrego tabIndex=0 , mi botón ya no funciona.

¿Hay alguna otra forma de corregir este error?

Así es como se ve el componente desplegable:

 <ul name="filters" className="dropdown"> {filterOptions.map((filter) => ( <li key={filter.id} defaultChecked={filter.name} name={filter.name} className={`option option-${filter.selected ? 'selected' : 'unselected'}`} > <span className={`option-${filter.selected ? 'checked-box' : 'unchecked-box'} `} /> <a onClick={() => handleSelect(filter)} role="button"> {filter.name} </a> </li> ))} </ul>
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Los botones son controles interactivos y, por lo tanto, enfocables. Si la función del botón se agrega a un elemento que no se puede enfocar por sí mismo (como <span> , <div> o <p> ), entonces, se debe usar el atributo tabindex para que el botón se pueda enfocar.

https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/button_role#Accessibility_concerns

El atributo HTML tabindex corresponde al atributo tabIndex en React.

https://reactjs.org/docs/dom-elements.html

Así que creo que @S.. la respuesta es correcta:

 <a onClick={() => handleSelect(filter)} role="button" tabIndex={0} > {filter.name} </a>
over 4 years ago · Santiago Trujillo Denunciar

0

Agregar un tabindex:

 <a onClick={() => handleSelect(filter)} role="button" tabIndex={i}> {filter.name} </a>

después de agregar primero un iterador a su mapa: (filter, i)

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda