metis-desk/docs/auditorias/ficha-puesto-trabajo/implementacion-v3/comparaciones/estados-y-contraste.md

52 lines
9.2 KiB
Markdown
Raw Normal View History

2026-10-24 23:19:17 +00:00
# M08: matriz de estados y contraste
[Informe v3](../../../../implementacion-uiux-ficha-puesto-v3.md) · [Muestras computadas](estados-y-contraste.json) · [Mediciones completas](../mediciones.json).
Colores efectivos de texto y fondo en sRGB después de componer transparencia. Las decisiones utilizan el cociente sin redondear. Texto normal: 4,5:1; el contador grande de 30 px: 3:1. La etiqueta explícita conserva el significado independientemente del color.
| Componente / ubicación | Texto | Variante final | Claro: contraste (texto / fondo) | Oscuro: contraste (texto / fondo) | Significado y decisión |
| --- | --- | --- | --- | --- | --- |
| WorkstationConfigurationItem / WorkstationSoftware · Familias / Software | Configurado | outline | 18.92:1 (rgb(13, 17, 23) / rgb(255, 255, 255)) | 17.11:1 (rgb(252, 252, 252) / rgb(22, 25, 34)) | Configuración documentada; no acceso comprobado. Unificar Software con familias; conservar etiqueta y contexto. |
| WorkstationConfigurationItem / WorkstationSoftware · Familias / Software | Pendiente de configurar | secondary | 12.33:1 (rgb(255, 255, 255) / rgb(36, 51, 92)) | 15.58:1 (rgb(255, 255, 255) / rgb(26, 35, 59)) | Configuración pendiente. Conservar atención y texto; no convertir en error. |
| WorkstationSoftware / WorkstationConfigurationItem · Software / Carpetas | Pendiente de retirar | secondary | 12.33:1 (rgb(255, 255, 255) / rgb(36, 51, 92)) | 15.58:1 (rgb(255, 255, 255) / rgb(26, 35, 59)) | Retirada por completar. Conservar significado distinto de configurar. |
| WorkstationConfigurationItem · Carpetas | Requiere revisión | Texto amber existente | 5.03:1 (rgb(187, 77, 0) / rgb(255, 255, 255)) | 10.19:1 (rgb(255, 185, 0) / rgb(22, 25, 34)) | Verificación documental independiente del estado. Conservar: contraste suficiente en ambos temas. |
| WorkstationPendingConfigurations · Pendientes | 1 | Texto grande amber existente | 5.03:1 (rgb(187, 77, 0) / rgb(255, 255, 255)) | 10.19:1 (rgb(255, 185, 0) / rgb(22, 25, 34)) | Total conocido positivo; no mensajes no leídos. Conservar número, título y acción. |
| WorkstationPendingConfigurations · Pendientes | No se puede confirmar el total de pendientes. | Texto muted-foreground | 4.83:1 (rgb(113, 113, 122) / rgb(255, 255, 255)) | 6.85:1 (rgb(161, 161, 170) / rgb(22, 25, 34)) | Información insuficiente; no cero. Conservar incertidumbre y recuperación de fuente. |
| EntityStatus · Cabecera / Perfiles | Activo | Texto y punto decorativo | 4.71:1 (rgb(113, 113, 122) / rgb(252, 252, 252)) | 7.53:1 (rgb(161, 161, 170) / rgb(13, 14, 18)) | Ciclo de vida/disponibilidad documental; no conectado. Conservar semántica binaria y texto. |
| EntityStatus · Perfiles activos y archivados | Inactivo | Texto y punto neutral decorativo | 18.92:1 (rgb(13, 17, 23) / rgb(255, 255, 255)) | 17.11:1 (rgb(252, 252, 252) / rgb(22, 25, 34)) | Perfil inactivo mostrado en el ámbito de archivados, no eliminado. Conservar etiqueta real y contexto del listado. |
| WorkstationQueryFeedback · Fuente fallida de configuración | Error y Reintentar | role=alert + Button outline | 18.92:1 (rgb(13, 17, 23) / rgb(255, 255, 255)) | 17.11:1 (rgb(252, 252, 252) / rgb(22, 25, 34)) | Error recuperable de una fuente. Conservar alcance y reintento; no vacío. |
| DetailPanel.count / WorkstationEquipmentGuidance · Equipamiento vacío confirmado | 0 (contador de colección vacía) | foreground sobre muted | 17.22:1 (rgb(13, 17, 23) / rgb(244, 244, 245)) | 14.52:1 (rgb(252, 252, 252) / rgb(39, 39, 42)) | Ausencia confirmada con mensaje y CTA conservados; aquí se mide el contador, no el nodo descriptivo. Conservar explicación y acción, distinta de bloqueo/error. |
| WorkstationProfiles / WorkstationSoftware / WorkstationSupport · Dependencia no satisfecha | Completa Equipamiento… | Texto muted-foreground | 4.83:1 (rgb(113, 113, 122) / rgb(255, 255, 255)) | 6.85:1 (rgb(161, 161, 170) / rgb(22, 25, 34)) | Funcionalidad bloqueada por ausencia de principal, no consulta fallida. Conservar contexto y motivo, distintos de colección vacía. |
| WorkstationActions · Cabecera | Editar puesto | Button secondary solicitado por ficha | 12.33:1 (rgb(255, 255, 255) / rgb(36, 51, 92)) | 15.58:1 (rgb(255, 255, 255) / rgb(26, 35, 59)) | Editor completo del puesto. Corregir contraste; otros consumidores conservan default. |
| DetailPanel.count, ajuste local en ficha · Equipamiento | 2 | Texto foreground sobre muted | 17.22:1 (rgb(13, 17, 23) / rgb(244, 244, 245)) | 14.52:1 (rgb(252, 252, 252) / rgb(39, 39, 42)) | Total conocido de miembros. Corregir contraste sin cambiar valor ni disponibilidad. |
| TeleworkAuthorizationSummary · Soporte / Entorno / Teletrabajo | Autorizada | Texto foreground, font-medium | 18.92:1 (rgb(13, 17, 23) / rgb(255, 255, 255)) | 17.11:1 (rgb(252, 252, 252) / rgb(22, 25, 34)) | Estado de autorización registrado; vigencia y revisión se explican aparte. Corregir color fijo; conservar estado, fechas y advertencias. |
| WorkstationAssets · Estado técnico del activo | Operativo | outline | 18.92:1 (rgb(13, 17, 23) / rgb(255, 255, 255)) | 17.11:1 (rgb(252, 252, 252) / rgb(22, 25, 34)) | Estado técnico; distinto del ciclo de vida del puesto y de su asignación. Conservar operativo; corregir contraste de no operativos sin inferir otra severidad. |
| WorkstationAssets · Estado técnico del activo | Averiado | secondary | 12.33:1 (rgb(255, 255, 255) / rgb(36, 51, 92)) | 15.58:1 (rgb(255, 255, 255) / rgb(26, 35, 59)) | Estado técnico; distinto del ciclo de vida del puesto y de su asignación. Conservar operativo; corregir contraste de no operativos sin inferir otra severidad. |
| WorkstationAssets · Estado técnico del activo | En mantenimiento | secondary | 12.33:1 (rgb(255, 255, 255) / rgb(36, 51, 92)) | 15.58:1 (rgb(255, 255, 255) / rgb(26, 35, 59)) | Estado técnico; distinto del ciclo de vida del puesto y de su asignación. Conservar operativo; corregir contraste de no operativos sin inferir otra severidad. |
| WorkstationAssets · Estado técnico del activo | Retirado | secondary | 12.33:1 (rgb(255, 255, 255) / rgb(36, 51, 92)) | 15.58:1 (rgb(255, 255, 255) / rgb(26, 35, 59)) | Estado técnico; distinto del ciclo de vida del puesto y de su asignación. Conservar operativo; corregir contraste de no operativos sin inferir otra severidad. |
| WorkstationAssets · Uso del activo | En uso | secondary | 12.33:1 (rgb(255, 255, 255) / rgb(36, 51, 92)) | 15.58:1 (rgb(255, 255, 255) / rgb(26, 35, 59)) | Relación de asignación documentada, no actividad en tiempo real. Conservar etiqueta y ámbito. |
## Correcciones demostradas
| Caso | Antes | Después | Evidencia / alcance |
| --- | ---: | ---: | --- |
| Editar puesto, reposo oscuro | 3.70:1 | 15.58:1 | Mismo control, variante instalada secondary; ámbito y foco conservados. |
| Editar puesto, hover claro | 3.83:1 | 12.74:1 | Se conserva hover; se mide su color efectivo, no solo el token. |
| Contadores, claro | 4.40:1 | 17.22:1 | [Muestra previa específica](contraste-contadores-antes.json); contador de M06 sin modificar antes de su corrección. |
| Autorizada, oscuro | 3.27:1 | 17.11:1 | [Muestra previa específica](contraste-teletrabajo-antes.json); componente compartido, tres consumidores comprobados. |
| Averiado, oscuro | 1.65:1 | 15.58:1 | Variante destructive original → secondary local; conserva estado y restricciones. |
| En mantenimiento, oscuro | 1.65:1 | 15.58:1 | Variante destructive original → secondary local; conserva estado y restricciones. |
| Retirado, oscuro | 1.65:1 | 15.58:1 | Variante destructive original → secondary local; conserva estado y restricciones. |
Las muestras de contador/teletrabajo y estados técnicos son comparaciones específicas antes de su propia corrección, tomadas durante las revisiones de v3 con los demás ajustes ya aplicados. Las capturas generales iniciales sí corresponden a la línea base v2.2. No se presentan las muestras específicas como pantallas completas de v2.2.
## Interacción, lectura y límites
Se registran hover, foco por teclado y controles disabled en `interaction-colors-*`, `header-hover-*` y `empty-colors-*`. El foco vuelve al disparador en cancelaciones y a un control estable tras completar Equipamiento. Los controles inactivos están identificados como disabled y se acompañan de explicación visible; su opacidad no se trata como un fallo de texto activo.
Los puntos de EntityStatus son decorativos y redundantes con el texto, con `aria-hidden`; sus cocientes se conservan en el JSON sin exigirles por sí solos 3:1. Los bordes decorativos de tarjetas tampoco son la única señal de agrupación. La revisión no certifica todos los gráficos, anillos o controles de toda la aplicación.
Los tres consumidores de TeleworkAuthorizationSummary se recorren en claro/oscuro con autorización normal y revisión: ficha de puesto, entorno del perfil y listado de teletrabajo. Las pruebas es/en conservan authorized/scheduled/expired/revoked, vigencia y revisión como mensajes independientes. No se modifican los estados de negocio.
La fórmula y los criterios se contrastaron con [WCAG, texto](https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum.html) y [WCAG, información no textual](https://www.w3.org/WAI/WCAG22/Understanding/non-text-contrast.html). Es una verificación acotada de uso, no conformidad WCAG integral.