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

127
Vistas
El lector de pantalla vuelve a leer el contenido aunque se utiliza el registro de funciones

Quiero crear una pequeña aplicación de chat. También quiero usar el lector de pantalla para que me lea el texto. (Continuamente se deben leer las actualizaciones).

Entonces: debería ser realmente fácil usando el rol "log".

 <div id="canvas"> <div id="messages" role="log"> <ul id="test"> <li>Row 1</li> <li>Row 2</li> </ul> </div> </div>

Pero en mi caso específico, necesito borrar el div principal y crear el siguiente contenido.

 document.getElementById("canvas").innerHtml = "";

Noté que si vuelvo a llenar la lista, el lector de pantalla volverá a leer todos los elementos. Pero haré que el lector de pantalla recuerde el último estado.

Así que pensé en almacenar en caché el contenedor como

 let cache = document.getElementById("messages") document.getElementById("canvas").innerHtml = ""; document.getElementById("canvas").append(cache);

Pero esto también sobrescribe el estado. Estoy usando iOS VoiceOver. ¿Hay alguna manera de llegar a mi caso especial? ¿O alguien tiene alguna idea? ¿O es la única forma de asegurarse de que el padre no sea absuelto?

Muchas gracias

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Respuesta corta

Así de simple: si no quieres que se repita el contenido existente, no debes tocarlo. Agregue el nuevo contenido en su lugar.

Si su marco reemplaza demasiadas cosas (inútiles), su marco está funcionando mal o debe mejorarse.

Respuesta más larga

Cómo funcionan los lectores de pantalla y las regiones en vivo de ARIA

El lector de pantalla básicamente monitorea los cambios que ocurren en el árbol DOM, en las regiones que se le ha dicho que mire (las llamadas regiones en vivo de ARIA). Así es como funciona en la mayoría, si no en todos, los lectores de pantalla, navegadores y sistemas operativos.

Por lo tanto, si elimina todo de un elemento y lo vuelve a agregar, incluso si el contenido del texto real no ha cambiado, se volverá a leer.

Mire el punto de vista del lector de pantalla: de hecho, no es deseable hacer un análisis preciso de lo que se ha cambiado exactamente en el lugar, como usted describe.

Por ejemplo, Google Chrome Windows tenía ese tipo de problema en el pasado: si escribía "Hacía frío" y luego lo reemplazaba por "Hacía frío", había una tendencia a leer solo "ld", que, por supuesto, no tiene sentido como tal. El análisis preciso probablemente lo realizó el navegador antes de comunicarse con el lector de pantalla, y no en el lector de pantalla, porque funcionó bien en otros navegadores.

Pero piense más profundamente: ¿qué se debe leer en tal caso? ¿Solo la nueva palabra "frío"? toda la frase? El párrafo ? todo el elemento? ¿Incluso si tiene varios párrafos? Si el contenido es exactamente el mismo, ¿hay que repetir el texto o no decir nada, como si nada?

Las respuestas dependen mucho del contexto y el lector de pantalla no puede decidir adoptar un comportamiento constante de una vez por todas. Por lo tanto, es más sencillo simplemente seguir lo que sucede en el DOM y esperar que el diseñador actualice solo lo que tenga sentido en el momento adecuado.

Aria-atómica y aria-relevante

En teoría, se supone que funciona de la siguiente manera, pero todavía hay varios lectores de pantalla que no respetan totalmente estos dos atributos correctamente.

  • Si aria-atomic se establece en verdadero, todo el contenido de la región en vivo debe leerse nuevamente. Si se establece en falso, solo se debe leer el contenido modificado.
  • Relevante para ARia indica lo que debe leerse: adiciones (contenido nuevo), eliminaciones (eliminaciones) o ambas.

Tenga en cuenta en particular que un reemplazo no es más que una eliminación seguida de una adición y, por lo tanto, no ayuda a resolver su problema.

about 4 years ago · Juan Pablo Isaza 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