• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

Must Comunicación

Diseño Web y Marketing Online

  • Temas WordPress
  • Plugins WordPress
  • WooCommerce
  • Marketing
  • Tutoriales
    • WooCommerce
    • Easy Digital Downloads
  • Contacto
Usted está aquí: Inicio / WordPress / Desarrollo Web / Manos a la obra con ARIA: Elementos de página de inicio y de sistemas de navegación

Manos a la obra con ARIA: Elementos de página de inicio y de sistemas de navegación

Desarrollo Web Tagged as: accesibilidad Deja un comentario

Compartir
Compartir
Twittear
Pocket
WhatsApp
Email

¿Quieres que tu sitio web sea más accesible? ¿Quieres ser el primero conforme surgen en el mercado nuevas interfaces online? No busques más, lo que necesitas es ARIA.

Este conjunto de estándares, mantenido por W3C (World Wide Web Consortium) te proporciona lo mejor de ambos mundos al añadir ciertos atributos que te permitirán ampliar el código HTML en formas semánticas. Aquí, hablaremos de lo que es ARIA, veremos cómo puede beneficiar a un sitio internacional, y también veremos casos de uso paso a paso y con ejemplos de código. ¡Empecemos!

Fundamentos de ARIA

ARIA (llamado en ocasiones WAI-ARIA) es el acrónimo de un conjunto de estándares de accesibilidad, denominado Web Accessibility Initiative–Accessible Rich Internet Applications. Puedes consultar más sobre los fundamentos de ARIA en mi anterior artículo, pero repasemos ahora algunos de sus pilares.

  • HTML
    Accesibilidad Web: Primeros Pasos Con ARIA
    Kyle Speaker

Definir relaciones no-tradicionales

Una gran mayoría de sitios web están creados con HTML, el cual relaciona unos elementos con otros principalmente de un modo jerarquizado a través de relaciones padre-hijo. Este tipo de estructura es fantástico para definir contenido, pero falla a la hora de definir las interfaces de usuario. Por ejemplo, en muchos sitios y aplicaciones web, un área de contenido está controlada por botones dentro de un elemento hermano—los hermanos tienen el mismo elemento padre, pero en HTML no tienen una relación directa entre sí. Debido a esto, es complicado definir qué elementos de Interfaz de Usuario (UI) controlan cada pieza de contenido cuando se usan tecnologías de asistencia.

Esto también nos lleva a nuevas interfaces. Por ejemplo, si estás intentando navegar en un sitio web a través de un dispositivo móvil, la tarea será complicada si los cambios de los elementos no son visibles.

ARIA te permite relacionar elementos HTML usando atributos adicionales para representar este tipo de controles.

Una clasificación de elemento no-rígida

Otro defecto del HTML es su incapacidad para separar la estructura de la intención.

Por ejemplo, podrías querer convertir un elemento imagen en un botón clicable. Sin embargo, HTML todavía define esa imagen únicamente como imagen, y cualquier cosa más allá de esto sucede en cualquier otro sitio.

Con ARIA, podemos asignar la intención de un elemento de forma independiente, permitiéndonos marcar las imágenes como botones o definir un enlace como tooltip. Esto proporciona mayor control al desarrollador sobre la interfaz de usuario, creando un conjunto de relaciones más claras.

Crear de áreas de puntos de referencia (landmarks)

Más allá de marcar elementos dentro de la UI, ARIA también nos dá acceso a un atributo de rol—empleado para definir áreas en una página. Por ejemplo, podrías marcar tu menú principal como navegación y el área de contenido de tu artículo como contenido principal. Esto hace que sea más fácil para los usuarios moverse entre las áreas importantes de tu sitio web, y puede evitar confusiones en las páginas con maquetaciones complejas o poco comunes.

Caso de estudio: Página de inicio de pequeño negocio

Como ejemplo práctico de cómo añadir ARIA a un sitio, vamos a coger una estructura básica de un sitio que podría valer para un pequeño negocio e implementaremos en ella paso a paso nuestros atributos.

Example Page Wireframe
La estructura de página que vamos a marcar con código ARIA.

Para mayor claridad, hemos fragmentado el código, y eliminado las clases CSS y cualquier funcionalidad procedente del CMS.

Lo primero que queremos hacer es dividir nuestra página en partes para simplificar la adición de ARIA. En la imagen inferior, verás que hemos dividido el sitio en cinco partes principales:

  • Navegación
  • Contenido
  • Sidebar
  • Formularios de contacto
  • Elementos UI especializados

En nuestro caso, esto toma la siguiente forma:

Wireframe broken into sections
Las secciones con las que vamos a trabajar.

Cuando dividimos tu sitio en partes de esta forma, perseguimos dos cosas. La primera es para los elementos que pueden ser definidos por un punto de referencia o landmark de ARIA: banner, navigation, main, complementary, content, info, search, y form. Estos puntos representan las partes necesarias de nuestro sitio, y todo lo que no sea necesario para su uso, no será marcado como landmark (por ej. los anuncios).

Lo segundo en lo que nos debemos fijar son los elementos concretos que deban ser aclarados mediante ARIA. En la mayoría de los casos esto es bastante sencillo (por ejemplo, marcar una imagen como imagen), pero con algunos elementos de interfaz, puede resultar un poco engañoso.

Una vez sepamos en qué áreas debemos implementar ARIA, podremos empezar a repasarlas sistemáticamente. Vamos a comenzar con la navegación del sitio.

Navegación

En nuestro ejemplo, habrás notado que tenemos unos cuantos tipos de navegación. El primero es un menú como el de la mayoría de los sitios, en el que se listan algunas páginas del sitio. Directamente debajo tenemos un menú más pequeño que contiene opciones para los usuarios.

Queremos marcarlos con el atributo role="navigation" de manera que puedan ser detectados fácilmente como menús del sitio. Esto nos lleva a la siguiente pregunta: ¿deberían estar agrupados juntos en un landmark de navegación único, o deberían marcarse por separado?

Para responder a esta pregunta en tus propios proyectos puedes plantearte estas dos preguntas:

  1. ¿Es distinta la intención de cada uno de los menús? En nuestro ejemplo, el menú superior sirve para navegar hacia las páginas principales del sitio, mientras que el menú más pequeño se centra en cosas que puedan necesitar los usuarios que hayan iniciado sesión. Estos objetivos son distintos, y por tanto tendría sentido separarlos.
  2. ¿Están los menús dentro del mismo elemento padre? Se que esto parece contradictorio, ya que ARIA está diseñado para ayudarnos a superar estos tipos de restricciones en las relaciones entre elementos, pero en este caso no se trata tanto de lo que es posible y sino sobre lo que es correcto para el usuario. Tener definido un único menú, pero ubicar la mitad de este en un sitio y la mitad en otro, hace que la navegación sea más complicada.

En nuestro caso, vamos a tratar nuestras navegaciones como landmarks independientes. Así que vamos a hacer algunos cambios en el código. Y vamos a empezar con el HTML.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- Example code before ARIA -->
 
<div id=’menus’>
    <ul>
    <li>Home</li>
        <li>About</li>
        <li>Services</li>
        <li>Location</li>
        <li>Contact Us</li>
    </ul>
    <ul>
        <li>Login</li>
        <li>Account</li>
        <li>Settings</li>
    </ul>
</div>

Ahora lo notaremos con algunas marcas de referencia.

1
2
3
4
5
6
7
8
9
10
11
12
<!-- Example code after adding landmarks -->
 
<div id=’navigation-menu’ role=’navigation’>
    <ul>
        ...
    </ul>
</div>
<div id=’user-menu’ role=’navigation’>
    <ul>
        ...
    </ul>
</div>

El siguiente paso para definir estas landmarks consiste en dar al usuario una pista sobre cuál es el objetivo de cada uno de los menús. Si dejamos ambos como navegación sin más, dificultaremos la interpretación de las cosas. Así que vamos a añadirles etiquetas significativas usando el atributo aria-label:

1
2
3
4
5
6
7
8
9
10
11
12
<!-- Example code after adding labels -->
 
<div id=’navigation-menu’ role=’navigation’ aria-label=’Main Navigation’>
<ul>
...
</ul>
</div>
<div id=’user-menu’ role=’navigation’ aria-label=’User Menu’>
<ul>
...
</ul>
</div>

Más allá de esto, queremos añadir código de rol adicional a nuestro menú que permita a los usuarios saber que esto es un menú, y marcar cada enlace que contenga como elemento de menú.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- Code after ARIA implementation -->
 
<div id=’navigation-menu’ role=’navigation’ aria-label=’Main Navigation’>
    <ul role=’menu’>
        <li role=’menuitem’>Home</li>
        <li role=’menuitem’>About</li>
        <li role=’menuitem’>Services</li>
        <li role=’menuitem’>Location</li>
        <li role=’menuitem’>Contact Us</li>
    </ul>
</div>
<div id=’user-menu’ role=’navigation’ aria-label=’User Menu’>
    <ul role=’menu’>
        <li role=’menuitem’>Login</li>
        <li role=’menuitem’>Account</li>
        <li role=’menuitem’>Settings</li>
    </ul>
</div>

Lo que te queda por leer:

  • Área de contenido

  • Sidebar

  • Manejar los formularios de contacto

  • Comprobar tu implementación

  • Hacer la web más accesible

seguir leyendo en Tuts+

Entradas relacionadas

Compartir
Compartir
Twittear
Pocket
WhatsApp
Email

categorías: Desarrollo Web etiquetas: accesibilidad

anterior
siguiente

Acerca de Eva Collados Pascual

Apasionada de la sociedad de la información, el marketing online, la tecnología, el diseño y el arte.
Sigo a diario todas las noticias relacionadas con WordPress, si no encuentras en el blog la solución que buscabas, no dudes en consultarme.

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Acepto la Política de privacidad

Barra lateral principal

Categorías

  • Apps – Productividad
  • Artículos Tuts+
  • Diseño Web
  • eCommerce
  • Email Marketing
  • Emprendimiento
  • Marketing
  • SEO
  • Temas Shopify
  • Temas WordPress
  • Tutoriales
    • Tutorial de Easy Digital Downloads
    • Tutorial de WooCommerce
    • Tutorial W3 Total Cache
  • WooCommerce
  • WordPress
    • Desarrollo Web
    • Optimización
    • Plugins
    • Seguridad
    • Temas WordPress

Etiquetas

caché Conversión CRO Inspiración Web Landing Pages newsletters Performance Optimization PHP Plugins WooCommerce Plugins WordPress Seguridad SEO Startups Temas WooCommerce Temas WordPress Tutoriales Tuts+ Vídeo WooCommerce WordPress WPO

Copyright Must Comunicación© 2025 Genesis Framework

Este sitio web usa cookies propias y de terceros para recordar tus datos de inicio de sesión y recopilar estadísticas para mejorar la experiencia del usuario. Más información sobre las cookies Leer más. Aceptar x
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR