DEV Community

Cover image for Ocultar y mostrar elementos a los lectores de pantalla
Mía Salazar
Mía Salazar

Posted on • Edited on

Ocultar y mostrar elementos a los lectores de pantalla

English version

A la hora de desarrollar muchas veces ocultamos o mostramos elementos sin tener en cuenta a los lectores de pantalla. En algunos casos, cuando escondemos un componente deseamos que los screen readers tampoco puedan visualizarlos; en otros sí queremos que puedan verlos; y en otras circunstancias deseamos no mostrarlos solamente a ellos.

Para conseguir que la experiencia de usuario sea igual de placentera para todas las personas, y garantizar un uso universal de la web, en este artículo voy a enumerar las diferentes maneras de esconder y visualizar componentes.

CSS

Para comenzar, vamos a hablar de diferentes propiedades de Hojas de Estilo en Cascada, su comportamiento en los navegadores y, por último, cómo los perciben los lectores de pantalla.

display

display: none;

Esta propiedad de CSS determina el tipo de caja (para más info podéis consultar este artículo). Si le añades el valor none lo que reciba este código será ocultado y eliminado del flujo, por lo que el lugar que ocupaba anteriormente, también desaparece.

Lector de pantalla: El elemento será ignorado.

visibility

visibility: hidden;

Nos permite esconder o enseñar un elemento sin eliminarlo del flujo y manteniendo la estructura de la página. Es decir, al contrario que con display: none; si le indicamos el valor hidden el elemento ya no está visible en la página pero el espacio sigue ocupado.

Lector de pantalla: El elemento será ignorado.

Imagen con un elemento con visibility: hiddenImagen con un elemento con visibility: hidden

width, height, overflow

width: 0;
height: 0;
overflow: hidden;

Height y width sirven para establecer el alto y ancho de los elementos y overflow permite controlar qué se va a hacer con el contenido que supera el tamaño que tiene un elemento.

Si los combinamos de esta forma, los componentes que se vean afectados por este código estarán ocultos y no se mantendrá el espacio que ocupan.

Lector de pantalla: El elemento será ignorado.

position

position: absolute;
left: -9999em;

Esta propiedad indica la forma de posicionar que se va a utilizar en un componente. Si empleamos el absolute y left: -9999em, el contenido se desvanecerá del flujo normal, estará emplazado en la esquina izquierda y el espacio que ocupaba también desaparecerá.

Lector de pantalla: Tendrán en cuenta esos elementos y podrán acceder a su contenido.

text-indent

text-indent: -9999em;

text-indent especifica la indentación que va a tener la primera línea de un párrafo. En este caso, los elementos son ocultados aunque pueden seguir recibiendo el foco.

Lector de pantalla: Tendrán en cuenta esos elementos y podrán acceder a su contenido, aunque éste sólo podrá ser texto o elementos en línea.

HTML

Dejando a un lado las propiedades de CSS, hay que destacar algunos atributos de HTML.

aria-hidden

<p aria-hidden="true">Esto es un texto</p>

Este atributo de HTML si tiene su valor en true será ocultado exclusivamente para los lectores de pantalla, pudiendo ser visualizado en los navegadores.

Sin embargo, hay que tener en cuenta que este atributo no funciona en elementos que pueden recibir el foco como los botones, los inputs o los links.

Lector de pantalla: El elemento será ignorado.

type="hidden"

<input type="hidden" name="input"/>

Como mencionamos anteriormente, el aria-hidden="true" no funcionará en elementos que admiten tener el foco, como los inputs. No obstante, si a un input le ponemos que es de tipo hidden sí que podrá ser ocultado.

Lector de pantalla: El elemento será ignorado.

hidden

<p hidden="true">Esto es un texto</p>

Al colocar este atributo en el HTML, este elemento se comportará como si tuviera un display: none, siendo escondido y eliminado del flujo. Este atributo afecta a elementos que pueden recibir el foco.

Lector de pantalla: El elemento será ignorado.

Conclusión

Disponemos de muchas formas de mostrar y ocultar elementos tanto usando HTML como CSS y que se comportan de diferente forma. Ahora que conocemos cómo funcionan cada uno de ellos, podremos tenerlo en cuenta a la hora de desarrollar y así crear proyectos accesibles.

Para más información
https://www.pluralsight.com/guides/how-to-hide-text-from-screen-readers
http://alistapart.com/article/now-you-see-me/

Quadratic AI

Quadratic AI – The Spreadsheet with AI, Code, and Connections

  • AI-Powered Insights: Ask questions in plain English and get instant visualizations
  • Multi-Language Support: Seamlessly switch between Python, SQL, and JavaScript in one workspace
  • Zero Setup Required: Connect to databases or drag-and-drop files straight from your browser
  • Live Collaboration: Work together in real-time, no matter where your team is located
  • Beyond Formulas: Tackle complex analysis that traditional spreadsheets can't handle

Get started for free.

Watch The Demo 📊✨

Top comments (0)

Image of PulumiUP 2025

Let's talk about the current state of cloud and IaC, platform engineering, and security.

Dive into the stories and experiences of innovators and experts, from Startup Founders to Industry Leaders at PulumiUP 2025.

Register Now

👋 Kindness is contagious

Engage with a wealth of insights in this thoughtful article, valued within the supportive DEV Community. Coders of every background are welcome to join in and add to our collective wisdom.

A sincere "thank you" often brightens someone’s day. Share your gratitude in the comments below!

On DEV, the act of sharing knowledge eases our journey and fortifies our community ties. Found value in this? A quick thank you to the author can make a significant impact.

Okay