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

187
Views
¿Cómo puedo hacer que un lector de pantalla lea una combinación de texto y componentes?

Tengo la siguiente matriz:

 const row = ['I agree to the', {}, 'and', {}];

Donde los 2 objetos son componentes de React que hacen del texto un enlace.

Luego renderizo este texto así:

 <WrapperComponent> {row} </WrapperComponent>

Obtengo la siguiente oración:

Acepto los Términos de servicio y la Política de privacidad

Y si enciendo el lector de pantalla, toda la oración se enfoca y se lee.

Mi pregunta es si puedo hacer algo para que el lector de pantalla lea la oración completa primero y luego tenga el primer elemento de enlace "Términos de servicio" enfocado si el usuario desliza el dedo hacia la derecha una vez, y "Política de privacidad" si desliza el dedo hacia la derecha dos veces.

about 4 years ago · Santiago Gelvez
3 answers
Answer question

0

puede crear una clase para ellos si desea que se centren programáticamente, esta clase usará Refs en DOM Elements

 class CustomTextInput extends React.Component { constructor(props){ super(props); this.component= React.createRef(); } render() { return <div ref={this.component} />; } focushere(){ this.component.current.focus(); } }

para que pueda agregar un detector de eventos basado en el gesto de deslizamiento del usuario para que pueda acceder a la clase y llamar a la función focushere()

about 4 years ago · Santiago Gelvez Report

0

Lo siguiente hace que se lea primero la oración completa de la casilla de verificación, luego un deslizamiento hacia la derecha dice "términos de servicio". Sin embargo, el siguiente deslizamiento hacia la derecha dice "y" y luego el siguiente deslizamiento hacia la derecha dice "política de privacidad", al menos en iOS. No tengo un dispositivo Android para probarlo. Así que eso está cerca de lo que quieres. Si sus dos componentes son enlaces, deberían hacer que el deslizamiento se mueva hacia ellos.

 <label> <input type="checkbox"> i agree to the <a href="#">terms of service</a> and <a href="#">privacy policy</a> </label>
about 4 years ago · Santiago Gelvez Report

0

Suponemos que su <WrapperComponent> es una casilla de verificación etiquetada, por lo tanto, otro elemento interactivo que puede recibir atención.

MDN desaconseja el uso de elementos interactivos dentro de las etiquetas :

No coloque elementos interactivos como anclas o botones dentro de una etiqueta. Hacerlo dificulta que las personas activen la entrada de formulario asociada con la etiqueta.

Por lo tanto, si bien podría funcionar en algunos lectores/navegadores de pantalla, debe evitarlo.

MDN sugiere además la siguiente solución (ajustada a su texto):

 <label for="tac"> <input id="tac" type="checkbox" name="terms-and-conditions"> I agree to the Terms of Service and Privacy Policy </label> <p> Read our <a href="terms-of-service.html">Terms of Service</a> and our <a href="privacy.html">Privacy Policy</a> </p>

about 4 years ago · Santiago Gelvez 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!