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

192
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 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