Especiales

Mapa interactivo

Presenta ubicaciones con controles de teclado y lista alternativa.

.ally-mapMVP 1.0Accesible por defecto

Ejemplo

Vista real construida con los archivos compilados de Ally.

  • 1. Santiago — Avenida Principal 123
  • 2. Valparaíso — Calle Puerto 45
HTML
<div class="ally-map">
<div data-ally-map-visual aria-label="Mapa de oficinas">
<button type="button" data-ally-marker style="inset-inline-start:20%;inset-block-start:32%" aria-label="Oficina Santiago">1</button>
<button type="button" data-ally-marker style="inset-inline-start:68%;inset-block-start:58%" aria-label="Oficina Valparaíso">2</button>
</div>
<ul class="ally-map-list" data-ally-map-list>
<li>
<strong>1. Santiago</strong> — Avenida Principal 123</li>
<li>
<strong>2. Valparaíso</strong> — Calle Puerto 45</li>
</ul>
</div>

Contrato accesible

Propósito
Presenta ubicaciones con controles de teclado y lista alternativa.
Clases CSS
.ally-map y modificadores de estado documentados.
HTML
Elemento semántico correspondiente, heading o nombre accesible y controles nativos.
ARIA
Región nombrada, marcadores con nombre y lista alternativa.
Teclado
Tab recorre marcadores; Enter activa; lista alternativa disponible.
Foco
Foco visible y predecible; overlays devuelven el foco al control que los abrió.
Estados
closed, open, active, selected, expanded, disabled y loading según aplique.
Ally Debug
Valida estructura, nombres, relaciones, controles y estados detectables dentro del scope.

Estados y variantes

defaultfocusactivedisablederror

Los estados visibles deben acompañarse de texto, atributos nativos o propiedades ARIA; nunca dependen solo del color.

Accesibilidad

Prueba obligatoria: semántica, teclado, foco visible, zoom al 200%, contraste, reduced motion y lector de pantalla.

No hacer

HTML
<div class="ally-map">Contenido sin elemento semántico, nombre accesible ni estados asociados.</div>
Un contenedor genérico con una clase visual no reemplaza la semántica, el nombre accesible ni la gestión de estados.