MODO CONFIABILIDADDatos›Método›Decisión

Buscar en Modo Confiabilidad

↑ ↓ para moverse · Enter para abrir · Esc para cerrar

Vista previa dentro de un visor: aquí no funcionan las descargas, la impresión ni los enlaces de correo. En el sitio publicado funcionan.

Documentación técnica del sitio

Documentación técnica del sitio

Arquitectura, mapa del sitio, wireframes, sistema de diseño, componentes, verificación, modelo de contenidos, SEO, rendimiento, accesibilidad, diseño adaptable y benchmark de Modo Confiabilidad. Las cifras de esta página se calculan en cada compilación.

Resumen

Modo Confiabilidad es un sitio estático: 59 páginas HTML generadas a partir de Markdown, de las cuales 57 son indexables. Las demás llevan noindex: la página de error, esta documentación y, si la suscripción está activa, la confirmación de suscripción. Tiene 16 guías técnicas, 13 calculadoras, 6 módulos de laboratorio, un tablero de mantenimiento con su kit para Power BI, 44 757 palabras de contenido y un buscador con 335 entradas. Las calculadoras y los modelos del laboratorio se verifican con 104 pruebas numéricas que se ejecutan en cada compilación: si una falla, el sitio no se genera.

Entregable del pliego Dónde está
Arquitectura Arquitectura: principios, proceso de compilación, estructura del código y despliegue
Sitemap Mapa del sitio, generado desde el registro de páginas, y sitemap.xml cuando se define el dominio
Wireframes Wireframes de inicio, guía, calculadora, tablero y celular
Diseño final El sitio mismo; las reglas que lo producen están en Sistema de diseño
HTML, CSS y JS Código fuente: src/ (plantillas), assets/css/main.css y assets/js/
Componentes reutilizables Componentes
Assets Tipografías autoalojadas, KaTeX, logotipo SVG, imágenes para redes, plantillas XLSX y kit de Power BI (estructura)
Calculadoras funcionales Las 13 calculadoras y su verificación
Base de contenidos Modelo de contenidos
SEO técnico y semántico SEO
Rendimiento, accesibilidad y responsive Rendimiento, Accesibilidad y Diseño adaptable
Benchmark Benchmark
Auditoría Auditoría: observaciones por rol, correcciones y verificación automática

Arquitectura

Principios

  • Sitio estático. Todo el HTML se genera en la compilación. No hay servidor de aplicación, base de datos ni cuentas de usuario, de modo que se aloja en cualquier servicio de archivos estáticos y no tiene superficie de ataque del lado del servidor.
  • Sin framework. El generador es un script de Node.js con dos dependencias de producción, marked (Markdown) y katex (fórmulas), y usa esbuild para empaquetar el JavaScript. Cada página carga solo el script que necesita, como script clásico: el sitio funciona igual publicado que abierto desde el disco, sin servidor ni conexión.
  • Cálculo en el navegador. Las calculadoras, el laboratorio y el tablero no envían datos a ningún lado. Lo que se carga en una calculadora queda guardado en el propio navegador.
  • Fórmulas resueltas en la compilación. KaTeX convierte cada fórmula en HTML y MathML durante la compilación; el navegador solo descarga la hoja de estilos de KaTeX en las páginas que tienen fórmulas.
  • Sin terceros por defecto. Las tipografías están alojadas en el propio sitio, y no hay cookies, publicidad ni recursos de otros dominios. Las únicas excepciones son opcionales, las estadísticas de visitas y la suscripción por correo, y se activan por configuración. La política de seguridad de contenidos autoriza solo los dominios de lo que esté activo.
  • La verificación es requisito de publicación. La compilación ejecuta las pruebas numéricas y controla la estructura de cada guía y el contraste de cada color antes de escribir una sola página.

Proceso de compilación

node build.mjs ejecuta, en este orden:

  1. Borra dist/, copia los estilos y static/, y empaqueta el JavaScript con esbuild: un script común, uno por calculadora, módulo o página que lo necesite, y uno por widget.
  2. Prepara las dependencias de presentación: la hoja de estilos de KaTeX con sus fuentes WOFF2, las tipografías del sitio con su @font-face (subconjuntos por unicode-range) y el favicon SVG, que se dibuja con el mismo código que el logotipo.
  3. Ejecuta tests/models.test.mjs. Si alguna prueba falla, la compilación se detiene con la lista de fallas.
  4. Genera las 16 guías: Markdown con front matter, secciones numeradas, índice lateral, herramientas y guías relacionadas. Si una guía no tiene las ocho secciones del pliego en orden, la compilación se detiene.
  5. Genera las calculadoras y los módulos del laboratorio: el marco de la página con su documentación, y la tabla de verificación con los resultados de las pruebas de esta misma compilación.
  6. Genera el blog. Con BLOG_HASTA publica solo los artículos con fecha hasta ese día.
  7. Genera las páginas en Markdown (sobre, cursos, casos, recursos, comunidad, contacto y esta documentación).
  8. Arma el kit de Power BI: seis CSV, consultas de Power Query, medidas DAX, tema, instrucciones y el ZIP.
  9. Compone las páginas que combinan datos: inicio, biblioteca, glosario, normas, calculadoras, laboratorio, tablero, blog y 404.
  10. Escribe el índice del buscador.
  11. Mide el peso de las páginas tipo, el volumen de contenidos y el contraste de los colores, y los inserta en esta documentación.
  12. Escribe robots.txt, site.webmanifest, _headers y, si se definió el dominio, sitemap.xml.
  13. Crea dist-artifact/, una variante de vista previa en la que la página de inicio no lleva el esqueleto HTML.

La compilación sin pruebas tarda menos de un segundo. Las pruebas agregan unos nueve segundos, la mayor parte en las simulaciones con varias semillas que verifican propiedades estadísticas.

Estructura del código

confiabilidad/
  build.mjs               generador: pruebas, compilación, controles y dist/
  package.json            marked y katex; esbuild, tipografías, html-validate y axe-core
  src/
    site.mjs              registro: guías, calculadoras, módulos, navegación, editor
    md.mjs                Markdown -> HTML: fórmulas, llamadas, directivas,
                          anclas explícitas y ortotipografía de cifras
    layout.mjs            plantilla de página, encabezado, pie, rótulo, tarjetas,
                          rutas relativas e imagen para redes
    pages.mjs             páginas compuestas: inicio, índices, glosario, normas,
                          tablero, contacto y esta documentación
    diagrams.mjs          17 diagramas técnicos en SVG
    data.mjs              glosario, mapa de normas y bibliografía
    kit.mjs               kit de Power BI: CSV, Power Query, DAX, tema y ZIP
  content/
    guias/                16 guías (Markdown con front matter)
    herramientas/         documentación de las 13 calculadoras
    lab/                  documentación de los 6 módulos del laboratorio
    blog/                 artículos: NN-slug.md
    paginas/              sobre, cursos, casos, recursos, comunidad, contacto, docs
  assets/
    css/main.css          sistema de diseño completo, sin preprocesador
    js/core.js            tema, navegación, buscador, índice, widgets, desplazamiento
    js/lib/               modelos puros (stats, models, lab, fleet) y marco de
                          interfaz (ui, charts)
    js/calc/              una interfaz por calculadora
    js/lab/               una interfaz por módulo del laboratorio
    js/widgets/           componentes incrustados en el texto de las guías
    js/dashboard.js       tablero de mantenimiento
    js/contacto.js        redacción de consultas
  static/                 se copia a la raíz: plantillas XLSX e imágenes para redes
  scripts/
    plantillas.py         genera las cinco plantillas de Excel con fórmulas
    og.py                 genera las imágenes para redes (1200 x 630)
  tests/
    models.test.mjs       pruebas numéricas (se ejecutan en cada compilación)
    links.py              enlaces internos, anclas y recursos
    smoke.py              prueba de humo de calculadoras y laboratorio
    dash_smoke.py         prueba de humo del tablero
    superposiciones.py    textos que se pisan o quedan cortados, en seis anchos
    shots.py              capturas de pantalla y errores de consola

Comandos y variables

Comando Qué hace
npm install Instala las dependencias, las tipografías y las herramientas de validación
node build.mjs Ejecuta las pruebas y compila dist/ y dist-artifact/
node build.mjs --sin-pruebas Compila sin ejecutar las pruebas. Sirve para iterar en diseño; no se publica así
node tests/models.test.mjs Ejecuta las pruebas numéricas y muestra el detalle
python3 tests/links.py dist Verifica enlaces internos, anclas y recursos
npx html-validate $(find dist -name '*.html') Valida el HTML con las reglas de .htmlvalidate.json
python3 tests/auditoria.py dist Revisa cada página con axe-core en tema claro, oscuro y celular; registra errores de consola y violaciones de la política de seguridad, sirviendo las mismas cabeceras de _headers, y busca desplazamiento horizontal a 320 píxeles
python3 tests/estados.py dist Revisa con axe-core los estados interactivos: buscador, menús, errores de datos, filtros del tablero y gráficos recorridos con el teclado
python3 tests/local.py dist Abre el sitio desde el disco, sin servidor, y comprueba que funcionen las calculadoras, el laboratorio, el tablero, los widgets y el buscador
python3 tests/superposiciones.py dist Recorre cada página en seis anchos, de 320 a 1600 píxeles, y busca textos que se pisan, rótulos de gráficos a menos de 2 píxeles uno de otro y textos que salen de la pantalla o de su gráfico
python3 scripts/plantillas.py Regenera las plantillas de Excel; después hay que recalcularlas con LibreOffice para guardar los valores
python3 scripts/og.py Regenera las imágenes para redes con los títulos de dist/. Se corre después de compilar, cuando cambian los títulos
Variable Efecto
SITE_URL Dominio público, sin barra final. Activa las URL canónicas, sitemap.xml, las imágenes para redes, las migas de pan en JSON-LD y la acción de búsqueda del sitio
CONTACT_EMAIL Muestra el botón «Abrir en el correo» del formulario de contacto. Sin esta variable, el formulario arma el mensaje y lo copia para enviarlo por LinkedIn
BLOG_HASTA Fecha AAAA-MM-DD. Publica solo los artículos fechados hasta ese día, para acompañar una serie de LinkedIn sin adelantar las publicaciones siguientes
CF_ANALYTICS_TOKEN Token de sitio de Cloudflare Web Analytics. Agrega el script de estadísticas a todas las páginas y autoriza sus dominios en la política de seguridad. Con el valor auto, solo los autoriza, para cuando Cloudflare inserta el script por su cuenta
NEWSLETTER_URL Dirección de envío del formulario del proveedor de correo, por ejemplo https://app.kit.com/forms/NÚMERO/subscriptions. Muestra el formulario de suscripción en el pie de todas las páginas y al final de cada artículo, y genera la página de confirmación suscripcion.html
NEWSLETTER_CAMPO Nombre del campo del correo, si el proveedor no es Kit: email en Buttondown, EMAIL en Brevo. Con Kit no hace falta

Ejemplo: SITE_URL=https://www.ejemplo.org BLOG_HASTA=2026-10-20 node build.mjs.

Despliegue

El contenido de dist/ se sube a la raíz de cualquier servicio estático: Netlify, Cloudflare Pages, GitHub Pages, un bucket S3 con CloudFront o un servidor Nginx. Todos los enlaces internos son relativos, así que el sitio también funciona dentro de una subcarpeta.

También funciona sin servidor. Con doble clic en index.html se navega completo y funcionan las calculadoras, el laboratorio, el tablero y el buscador, sin conexión a internet, así que la carpeta dist/ sirve también como caja de herramientas sin conexión. En ese modo no se aplican las cabeceras de seguridad, porque las pone el alojamiento.

Netlify y Cloudflare Pages leen el archivo _headers tal como está. En otros servicios hay que replicar sus cabeceras en la configuración propia (en Nginx, con add_header). La política de seguridad de contenidos que se genera es esta:

default-src 'self';
script-src 'self' 'sha256-vf+SCwUohUAI/UwUA0ovqdzZqHoY1qIXkGpfZmPUGzQ=' https://static.cloudflareinsights.com;
style-src 'self' 'unsafe-inline';
img-src 'self';
font-src 'self';
connect-src 'self' https://cloudflareinsights.com;
object-src 'none';
base-uri 'self';
form-action 'self';
frame-ancestors 'self';
upgrade-insecure-requests

Sin servicios opcionales, todo se sirve desde el propio dominio. Con las estadísticas activas, la política suma el script de Cloudflare y el destino de sus datos; con la suscripción, la dirección del formulario del proveedor. El único script en línea, que aplica el tema claro u oscuro antes de pintar la página para evitar un destello, se autoriza por su hash SHA-256; si se modifica ese script, la compilación recalcula el hash. style-src admite estilos en línea porque los usan las fórmulas de KaTeX y los gráficos, que fijan colores y posiciones en cada elemento. El resto de las cabeceras desactiva el rastreo del tipo MIME, limita la información de origen que se envía a otros sitios, bloquea el uso del sitio dentro de marcos ajenos y desactiva cámara, micrófono, geolocalización, pagos y USB.

Recursos Caché Motivo
/assets/css/*, /assets/js/* Revalidación en cada visita (max-age=0, must-revalidate) Los nombres de archivo no llevan huella de versión: revalidar evita mezclar una hoja de estilos nueva con un script viejo después de una actualización. La respuesta 304 pesa unos cientos de bytes
/assets/fonts/*, /assets/vendor/* 30 días Tipografías y KaTeX cambian solo cuando se actualiza la dependencia
/assets/img/*, /descargas/* 1 día Imágenes para redes, plantillas y kit

Estadísticas y suscripción por correo

Las dos funciones son opcionales y quedan apagadas hasta que se configuran. El sitio no necesita servidor propio para ninguna de las dos.

Estadísticas de visitas con Cloudflare Web Analytics. Es gratuito, no usa cookies y funciona con cualquier alojamiento:

  1. Crear una cuenta en Cloudflare y, en Web Analytics, agregar el sitio con su dominio.
  2. Copiar el token que aparece en el fragmento de código que muestra Cloudflare.
  3. Compilar con CF_ANALYTICS_TOKEN=token.

Si el sitio se aloja en Cloudflare Pages o pasa por el proxy de Cloudflare con la inserción automática activada, se compila con CF_ANALYTICS_TOKEN=auto: Cloudflare inserta el script y la política de seguridad lo autoriza.

Suscripción por correo con Kit. El formulario envía el correo directamente al proveedor, sin scripts de terceros:

  1. Crear una cuenta en Kit y un formulario.
  2. En el código de inserción HTML del formulario, copiar la dirección del atributo action: https://app.kit.com/forms/NÚMERO/subscriptions.
  3. En la configuración del formulario, activar la doble confirmación y elegir como destino después de suscribirse la página suscripcion.html del sitio.
  4. Compilar con NEWSLETTER_URL=dirección.

Otro proveedor con formulario HTML, como Buttondown o Brevo, se configura igual, indicando además el nombre del campo con NEWSLETTER_CAMPO.

La página de privacidad se arma sola con lo que esté activo: describe el servicio de estadísticas y el proveedor de correo solo cuando están configurados.

Antes de publicar conviene seguir esta secuencia:

  1. Actualizar la fecha de revisión en src/site.mjs.
  2. Compilar con SITE_URL definido, sin --sin-pruebas.
  3. Correr python3 tests/links.py dist hasta que no informe problemas.
  4. Si cambiaron títulos, regenerar las imágenes con python3 scripts/og.py y volver a compilar.

Mapa del sitio

La navegación principal tiene cinco entradas: Biblioteca, Herramientas, Reliability Lab, Aprender y Comunidad. Las cuatro primeras abren un menú agrupado por tema. Cada página interna tiene una ruta de navegación, y el pie repite los accesos a la biblioteca, las herramientas, el laboratorio y las páginas del proyecto. Este árbol se genera desde el mismo registro que produce las páginas, así que no puede quedar desactualizado:

Trazabilidad con el pliego

Requisito Dónde se cumple
Inicio, Sobre, Contacto Inicio, Sobre Modo Confiabilidad, Contacto
Biblioteca técnica Biblioteca, con glosario y mapa de normas
RCM, FMEA, RCA, Weibull, RAM, TPM, OEE, ISO 55000, ISO 14224, predictivo, preventivo, CBM, instrumentación, gestión de activos, planificación y programación, KPI Una guía por tema, de CF-GU-01 a CF-GU-16
Ocho secciones por tema Fundamentos, Metodología, Fórmulas clave, Ejemplo industrial, Casos documentados, Buenas prácticas, Errores comunes y Referencias. La compilación lo controla
Dashboard de ejemplo Tablero con datos sintéticos de 36 meses y kit descargable para Power BI
13 herramientas funcionales Weibull, MTBF, MTTR, disponibilidad operacional, OEE, RAM, LCC, priorización, matriz de criticidad, generador FMEA, selector de estrategia, Cv de válvulas y ROI, en Calculadoras
Reliability Lab Simulación Weibull, Monte Carlo, optimización de PM, predicción de fallas, gemelo digital conceptual, machine learning y el tablero estilo Power BI, en Reliability Lab
Cursos, Blog, Casos reales, Recursos gratuitos, Comunidad Rutas de aprendizaje, Blog, Casos reales, Recursos, Comunidad. Las rutas son autodidactas, sin cursos dictados, y quien lee puede proponer temas nuevos
Identidad: ingeniería basada en datos, Weibull, gestión de activos, instrumentación, Power BI, decisiones por riesgo Sello MC², Modo Confiabilidad al cuadrado, con la frase «Datos › Método › Decisión»; navegación organizada por decisión, laboratorio cuantitativo y kit de Power BI
Sin prototipos ni contenido de relleno Cada página es contenido final. Los datos ilustrativos se rotulan como sintéticos y los casos remiten a su informe oficial

Wireframes

Esquemas de las cinco plantillas principales. Las proporciones son las del escritorio a 1240 píxeles de ancho de contenido, salvo el último, que muestra el comportamiento en un celular de 360 píxeles.

Inicio

+--------------------------------------------------------------------------+
| [MC²]  MODO CONFIABILIDAD   Biblioteca v  Herramientas v  Lab v          |
|                             Aprender v  Comunidad   [Buscar Ctrl K] [tema]|
+-------------------------------------------+------------------------------+
| HERO                                      | INSTRUMENTO INTERACTIVO      |
| Antetítulo y revisión                     | h(t) Weibull, eta = 1000 h   |
| H1 + bajada (2 líneas)                    | beta [-----o----] 2,50       |
| [Explorar la biblioteca] [Calculadoras]   | [ gráfico de tasa de falla ] |
| 16 guías · 13 calculadoras · 6 módulos    | Régimen | B10 | MTTF         |
| + pruebas numéricas superadas             | Veredicto en una frase       |
+--------------------------------------------------------------------------+
| ORGANIZADO POR DECISIÓN: 4 tarjetas con 3 enlaces cada una               |
| (qué equipos importan · qué hacer con cada modo · cuándo intervenir ·    |
|  cómo saber si funciona)                                                 |
+--------------------------------------------------------------------------+
| MAPA DEL CONOCIMIENTO: SVG de 4 carriles x 5 nodos con enlaces           |
+--------------------------------------------------------------------------+
| CALCULADORAS: grilla de 13 tarjetas (símbolo, título, descripción)       |
+-------------------------------------------+------------------------------+
| RELIABILITY LAB: 6 tarjetas               | PRINCIPIOS EDITORIALES 01-04 |
+--------------------------------------------------------------------------+
| DESDE LA BIBLIOTECA: 3 guías  ·  BLOG: 3 últimos artículos               |
+--------------------------------------------------------------------------+
| NORMAS: franja de chips  ·  [Mapa de normas]                             |
+--------------------------------------------------------------------------+
| PIE: marca + 4 columnas de enlaces · aviso · revisión                    |
+--------------------------------------------------------------------------+

Guía técnica

+--------------------------------------------------------------------------+
| Encabezado fijo (igual en todas las páginas)                             |
+--------------------------------------------------------------------------+
| Inicio / Biblioteca / RCM          <- ruta de navegación                 |
| BIBLIOTECA TÉCNICA · METODOLOGÍAS  <- antetítulo                         |
| H1 Título de la guía                                                     |
| Bajada (descripción, 2-3 líneas)                                         |
| +-----------+------------+---------+--------------------------+          |
| | Documento | Revisión   | Lectura | Normas de referencia     |          |
| | CF-GU-01  | 1 · fecha  | 14 min  | SAE JA1011 · IEC 60300   |          |
| +-----------+------------+---------+--------------------------+          |
+---------------------------------------------+----------------------------+
| §1 Fundamentos                              | EN ESTA GUÍA (fija)        |
| §2 Metodología                              | 01 Fundamentos  <- activo  |
| §3 Fórmulas  (KaTeX: HTML + MathML)         | 02 Metodología             |
| §4 Ejemplo industrial                       | ...                        |
| §5 Casos documentados                       |                            |
| §6 Buenas prácticas                         | HERRAMIENTAS               |
| §7 Errores comunes                          | · Selector de estrategia   |
| §8 Referencias                              | · FMEA                     |
|                                             |                            |
| Figuras numeradas, llamadas [NOTA],         | GUÍAS RELACIONADAS         |
| [ATENCIÓN], [IDEA CLAVE], [EJEMPLO],        | · FMEA · Weibull ...       |
| tablas, tarjetas de herramientas            |                            |
+--------------------------------------------------------------------------+
| Pie                                                                      |
+--------------------------------------------------------------------------+

Calculadora y módulo del laboratorio

+--------------------------------------------------------------------------+
| Encabezado · ruta · H1 · bajada · rótulo (herramienta, método,           |
| normas, guía)                                                            |
+-----------------------------+--------------------------------------------+
| DATOS DE ENTRADA (fijo)     | RESULTADOS (aria-live)                     |
| [Guardado en el navegador]  | +--------+--------+--------+               |
|                             | | Indic. | Indic. | Indic. |               |
| Grupo de campos             | | princ. +--------+--------+               |
|   Campo [valor ] [unidad v] | |        | Indic. | Indic. |               |
|   ayuda / error en línea    | +--------+--------+--------+               |
| Tabla editable (pega Excel) | Notas: lectura / atención                  |
|   [+ Agregar fila]          | Sección: gráfico + tabla de datos          |
|                             | Sección: tabla de resultados               |
| [Cargar ejemplo] [Vaciar]   |                                            |
| Ejemplo [lista v] [Cargar]  | [Copiar] [CSV] [Imprimir o PDF]            |
+--------------------------------------------------------------------------+
| DOCUMENTACIÓN: cómo usarla · método · fórmulas · supuestos ·             |
| verificación (tabla de pruebas de esta compilación) · referencias        |
+--------------------------------------------------------------------------+

Tablero de mantenimiento

+--------------------------------------------------------------------------+
| Encabezado · H1 · rótulo (datos, historial, modelo, kit)                 |
+--------------------------------------------------------------------------+
| FILTROS: Ventana v Área v Clase v Criticidad v Equipo v [Restablecer]    |
| (el estado se guarda en la dirección: #area=...&crit=...)                |
+--------------------------------------------------------------------------+
| Disponib. | MTBF | MTTR | Cumplimiento | Backlog | Trabajo reactivo      |
|   valor + variación interanual + minigráfico de 24 meses                 |
+--------------------------------------------------------------------------+
| LECTURA: 3 columnas de texto generado con los filtros activos            |
+------------------------------------------------+-------------------------+
| Disponibilidad mensual                         | MTBF y MTTR             |
| (banda de ventana, meta)                       | 12 meses móviles        |
+------------------------+------------------------+------------------------+
| Cumplimiento           | Horas-hombre por tipo  | Backlog (semanas)      |
+------------------------+------------------------+------------------------+
| Pareto de modos        | Malos actores          | Dispersión log-log     |
| [Cantidad|Horas]       | (cuadrante)            | (jack-knife)           |
+--------------------------------------------------------------------------+
| TABLA DE EQUIPOS ordenable · [Descargar CSV]                             |
+--------------------------------------------------------------------------+
| MODELO DE DATOS Y KIT: diagrama estrella · [Descargar ZIP] ·             |
| archivos · verificación tablero = DAX                                    |
+--------------------------------------------------------------------------+

Celular

+--------------------------------------+
| [MC²] MODO /     [Buscar][tema][=]   |
|       CONFIABILIDAD                  |
+--------------------------------------+
| Inicio / Biblioteca / RCM            |
| H1 en 2-3 líneas                     |
| Bajada                               |
| Rótulo en 2 columnas                 |
+--------------------------------------+
| GUÍAS RELACIONADAS (antes del        |
| texto; el índice se oculta)          |
+--------------------------------------+
| §1 Fundamentos ...                   |
| Tablas: desplazamiento lateral       |
| Fórmulas: desplazamiento lateral     |
| Figuras: ancho mínimo + desplaz.     |
+--------------------------------------+
| CALCULADORA: datos arriba,           |
| resultados abajo, 1 columna;         |
| indicadores en 2 columnas            |
+--------------------------------------+
| DASHBOARD: indicadores 2x3,          |
| gráficos a ancho completo            |
+--------------------------------------+

Sistema de diseño

El concepto es una hoja de ingeniería sobre la mesa gris de una sala de control. La interfaz es gris por defecto y el color aparece solo donde hay información o un estado, como en la filosofía de pantallas de proceso de ISA-101. Cada página empieza con un rótulo documental, como el de un plano. Los códigos y los encabezados de tabla van en monoespaciada y el texto de lectura, con serifa.

Tipografía

Familia Uso Pesos
Barlow Semi Condensed Interfaz, títulos, tablas, botones 400, 500, 600 y 700
Source Serif 4 Texto de lectura de guías y artículos 400 y 600, redonda e itálica, latín y griego
IBM Plex Mono Códigos de documento, encabezados de tabla, valores en controles 400, 500 y 600

Las tres familias tienen licencia SIL Open Font License y se sirven desde el propio sitio: 15 archivos WOFF2 que suman 246 kB. Cada navegador descarga solo los subconjuntos y pesos que usa la página, y las dos variantes que aparecen en todas las páginas se precargan. El cuerpo de lectura usa 18 píxeles con interlineado de 1,68 y líneas de hasta 70 caracteres.

Color

Token Tema claro Tema oscuro Uso
--bg #edf0f1 #0b1114 Fondo de página
--paper #ffffff #141c20 Hojas: paneles, tarjetas, tablas
--paper-2 #f5f7f8 #1a2429 Encabezados de tabla, código y llamadas
--ink #11171b #e5ebee Texto principal
--ink-2 #3f4b53 #b4c0c6 Texto secundario
--muted #5d6b74 #8b9ba4 Metadatos, ayudas y rótulos de ejes
--line #d3dadd #263238 Bordes y divisiones
--accent #006b80 #52c4d9 Enlaces y acciones principales
--signal #b8420c #f08a4b Contorno de foco del teclado
--seal-glyph #ffffff #141c20 Letras del sello MC². En tema oscuro el cuadrado del sello toma el color del texto y se aclara
--seal-exp #ffc23d #b8420c Exponente del sello MC²: amarillo sobre el cuadrado oscuro, naranja sobre el claro
--ok #1d7843 #52c07e Estado correcto
--warn #8f5c00 #e3ac40 Estado de atención
--crit #b42318 #f07a6c Estado crítico
--s1 a --s5 Series de los gráficos, siempre en el mismo orden

Los colores de estado se usan solo para estados, siempre acompañados de un texto («OK», «Atención», «Crítico»), nunca como decoración. El tema oscuro no invierte los colores: cada token tiene un valor propio, elegido para conservar el contraste y la jerarquía. El tema sigue la preferencia del sistema operativo hasta que se elige uno con el botón del encabezado.

La compilación calcula el contraste de cada par de uso con la fórmula de WCAG 2.2 a partir de main.css, y se detiene si un par de texto queda por debajo de 4,5:1 o un elemento gráfico por debajo de 3:1:

Par de coloresUsoMínimoTema claroTema oscuro
--ink sobre --paperTexto principal4,5:118,07:114,34:1
--ink-2 sobre --paperTexto secundario4,5:18,96:19,28:1
--muted sobre --paperMetadatos y ayudas4,5:15,50:16,02:1
--muted sobre --bgMetadatos sobre el fondo4,5:14,80:16,63:1
--muted sobre --paper-2Ayudas en celdas de encabezado4,5:15,11:15,51:1
--accent sobre --paperEnlaces4,5:16,15:18,43:1
--accent sobre --bgEnlaces sobre el fondo4,5:15,37:19,29:1
--accent-ink sobre --accentTexto de botón principal4,5:16,15:17,42:1
--ok sobre --ok-bgEstado correcto4,5:14,74:16,77:1
--warn sobre --warn-bgEstado de atención4,5:15,01:17,49:1
--crit sobre --crit-bgEstado crítico4,5:15,45:15,97:1
--signal sobre --paperContorno de foco3:15,49:16,94:1
--signal sobre --bgContorno de foco sobre el fondo3:14,80:17,64:1
--s1 sobre --paperSerie 1 de los gráficos3:14,07:14,88:1
--s2 sobre --paperSerie 2 de los gráficos3:13,36:14,77:1
--s3 sobre --paperSerie 3 de los gráficos3:14,98:14,69:1
--s4 sobre --paperSerie 4 de los gráficos3:14,63:14,37:1
--s5 sobre --paperSerie 5 de los gráficos3:13,06:15,49:1

Espaciado y retícula

Escala de espaciado de 4, 8, 12, 16, 24, 32, 48 y 72 píxeles (--sp1 a --sp8), radio de borde de 3 píxeles, ancho máximo de contenido de 1240 píxeles y margen lateral de 16 a 32 píxeles según el ancho de la pantalla. Las guías usan dos columnas, texto e índice lateral. Las calculadoras también usan dos: datos fijos a la izquierda y resultados a la derecha.

Cifras y unidades

Las cifras siguen la ortotipografía de la RAE y del Sistema Internacional, tanto en el texto como en las calculadoras y los gráficos:

  • Coma decimal: 0,632.
  • Espacio fino de no separación (U+202F) para los miles a partir de cinco cifras: 12 500 h. Los números de cuatro cifras no se separan: 8760 h.
  • Signo menos tipográfico (U+2212), no el guion.
  • Espacio de no separación entre el número y la unidad, también en el porcentaje: 85 %. El número nunca queda en una línea y su unidad en la siguiente.
  • Fechas en español: «13 oct. 2026» en listas y «13 de octubre de 2026» en el rótulo de un artículo.
  • Comillas angulares «» para las citas y los términos.

Gráficos

Trazos finos, grilla tenue y un solo eje vertical: nunca doble eje. La leyenda aparece solo con dos series o más, y el texto usa los tokens de tinta, no el color de la serie. Cada gráfico tiene un cuadro de información que se abre con el puntero o con el teclado, y una tabla con sus datos debajo, en un desplegable.

Componentes

Componente Definido en Uso
Encabezado con menús header() en layout.mjs, .site-head Menús agrupados con <details> nativos; se cierran con Esc o con un clic afuera. En pantallas angostas se pliegan en un botón
Buscador <dialog id="buscador"> y core.js Se abre con Ctrl K o con la barra; el índice se descarga recién al abrirlo. Se recorre con flechas y con Enter
Ruta de navegación crumbs() Lista ordenada con la página actual marcada. Se repite en JSON-LD
Cabecera y rótulo documental pageHead(), titleBlock() Antetítulo, título, bajada y bloque de datos del documento: código, revisión, lectura y normas
Índice lateral toc() y core.js Marca la sección visible mientras se lee
Tarjetas guideCard(), toolCard() Guías, calculadoras y módulos, con código, símbolo y descripción
Llamadas > [!NOTA], [!ATENCION], [!CLAVE], [!EJEMPLO] Notas, advertencias, ideas clave y ejemplos dentro del texto
Fórmulas \(…\) y \[…\] en Markdown KaTeX en la compilación, con HTML y MathML
Diagramas [[diagrama:nombre|pie]] y diagrams.mjs 17 figuras SVG numeradas con título y descripción accesibles
Marco de calculadora calcApp() en ui.js Campos declarativos con unidades, validación en línea, tablas editables que aceptan lo que se pega de Excel, ejemplos, guardado local, indicadores, notas, gráficos y exportación a portapapeles, CSV e impresión
Indicadores tilesHtml() Grilla de resultados sin celdas huérfanas; el indicador principal ocupa dos filas
Notas de lectura notesHtml() Interpretación, advertencias y errores de datos, anunciados a lectores de pantalla
Gráficos charts.js Líneas, áreas, bandas, dispersión, escalas logarítmicas, papel de Weibull, barras agrupadas y apiladas, cascada, tornado y minigráficos. Los textos se miden con su tipografía real: los rótulos de referencias y puntos marcados prueban posiciones hasta encontrar una libre, los nombres largos de las barras horizontales pasan arriba de cada barra y los rótulos de los ejes se ralean en forma pareja. Un halo del color del fondo separa cada rótulo de las líneas que lo cruzan. Cada gráfico lleva el sello MC² como marca de agua tenue, detrás de los datos, en una esquina que no toca ningún texto, sin eventos del puntero y oculta para lectores de pantalla
Widgets en el texto [[widget:nombre]] Tasa de falla de Weibull en la página de inicio, señal NAMUR NE 43 e inspección P-F dentro de las guías
Tabla de verificación [[verificacion:clave]] Resultado de las pruebas de esta compilación al pie de cada calculadora y módulo
Tablero dashboard.js Filtros con estado en la dirección de la página, indicadores con variación y minigráfico, lectura generada, gráficos y tabla ordenable con exportación
Formulario de contacto contactForm() y contacto.js Arma el mensaje y lo copia o lo abre en el correo, sin servidor

Modelos de cálculo y verificación

Los modelos son funciones puras, separadas de la interfaz, en assets/js/lib/: funciones especiales y estadística en stats.js, calculadoras en models.js, laboratorio en lab.js y la flota del tablero en fleet.js. Son los mismos archivos que ejecuta el navegador y los que importan las pruebas en Node.js, así que lo que se verifica es exactamente lo que calcula el sitio.

Las 104 pruebas de tests/models.test.mjs cubren:

  • Funciones especiales contra tablas: Γ, χ², distribución normal y rangos de mediana exactos.
  • Weibull contra los ejemplos resueltos de la referencia de análisis de vida de ReliaSoft (regresión de rangos y máxima verosimilitud, con y sin suspensiones), contra búsquedas exhaustivas independientes de la verosimilitud, y contra Weibayes, las vidas B e ISO 281.
  • MTBF, MTTR y disponibilidad con límites χ², ajuste lognormal y balances de horas.
  • OEE, RAM y economía: ejemplos de referencia, bloques k de n, VAN, costo anual equivalente y TIR.
  • Válvulas de control contra los ejemplos de IEC 60534-2-1 para líquido y gas.
  • Estrategia y laboratorio: edad óptima de reemplazo e intervalos de inspección contra búsquedas exhaustivas, intervalo de búsqueda de fallas, Monte Carlo contra soluciones analíticas, sesgo de máxima verosimilitud con pocas fallas, calibración del intervalo de vida remanente del gemelo digital y propiedades de la regresión logística, incluido el efecto de las etiquetas erróneas sobre el AUC.
  • Tablero y kit: determinismo del generador, paradas sin superposición, igualdad entre cada indicador del tablero y la medida DAX aplicada a los CSV, consistencia del Pareto, límites del diagrama de dispersión de Knights e integridad del ZIP.

Los generadores aleatorios usan una semilla fija (algoritmo mulberry32), de modo que dos personas con los mismos parámetros obtienen el mismo resultado y las pruebas son reproducibles. Las plantillas de Excel replican con fórmulas los criterios de las calculadoras, y se verificaron con los mismos casos.

Modelo de contenidos

Tipo de contenidoArchivosPalabrasEcuaciones en bloqueDiagramasTablas
Guías técnicas1617 849511626
Documentación de calculadoras1341092803
Documentación del laboratorio6635223012
Artículos del blog73087148
Páginas institucionales y esta documentación713 3602027
Total4944 7571052076

Cada tipo de contenido es un archivo Markdown con un encabezado de datos (front matter):

Tipo Carpeta Campos
Guía content/guias/ titulo, corto, descripcion, normas, herramientas, relacionadas, claves, revision, actualizado
Calculadora content/herramientas/ metodo, normas, lede, claves, ancho
Módulo del laboratorio content/lab/ modelo, lede, ancho
Artículo content/blog/NN-slug.md titulo, bajada, fecha, serie, temas, relacionadas
Página content/paginas/ titulo, eyebrow, bajada, descripcion, numerada

El Markdown admite, además de la sintaxis habitual de tablas y listas:

  • fórmulas en línea \(…\) y en bloque \[…\];
  • llamadas > [!NOTA], > [!ATENCION], > [!CLAVE] y > [!EJEMPLO];
  • directivas en una línea propia: [[diagrama:nombre|pie]], [[herramienta:id]], [[herramientas:a,b]], [[lab:id]], [[widget:nombre]], [[guias:a,b]] y [[verificacion:clave]];
  • anclas fijas en los títulos, ## Título {#ancla}, para que un enlace externo no se rompa si cambia el texto;
  • alineación numérica de columnas con --:.

La ortotipografía de cifras se aplica sola: el generador inserta los espacios de no separación entre número y unidad y entre grupos de miles.

Para agregar contenido:

  • Una guía nueva se registra en GUIDES (src/site.mjs) con su código y su grupo, y se escribe content/guias/slug.md con las ocho secciones.
  • Un artículo es un archivo content/blog/NN-slug.md; el número solo ordena los archivos y no aparece en la dirección.
  • Una calculadora necesita su entrada en TOOLS, la interfaz assets/js/calc/id.js, su documentación y sus casos de prueba.

Las reglas editoriales son:

  • Español técnico de Argentina: falla, falla funcional, confiabilidad.
  • Cada fórmula con su fuente.
  • Los datos ilustrativos se rotulan como tales y los casos reales remiten a su informe oficial.
  • Ninguna marca comercial se recomienda.

SEO técnico y semántico

Cada página tiene:

  • título propio con la marca al final, salvo que el conjunto supere los 70 caracteres, y descripción tomada del contenido;
  • idioma es;
  • metadatos Open Graph y de Twitter;
  • con el dominio definido, URL canónica e imagen para redes de 1200 × 630 con el título de la página, generada por scripts/og.py.

La documentación, la página 404 y la confirmación de suscripción llevan noindex. No se bloquean en robots.txt: un buscador que no puede leer una página tampoco ve su indicación noindex.

Datos estructurados (JSON-LD). Cada tipo de página declara el que le corresponde:

Tipo de página Esquema
Inicio y Sobre Organization con su fundador como Person
Inicio WebSite con SearchAction: el buscador del sitio abre la búsqueda con ?q=
Guías TechArticle con normas (about), nivel y tiempo de lectura
Calculadoras WebApplication gratuita (Offer a precio cero), categoría de ingeniería
Artículos BlogPosting con autor Person, fecha y palabras clave
Glosario DefinedTermSet con cada término y su equivalente en inglés
Todas las internas BreadcrumbList

HTML semántico. Las páginas usan:

  • regiones header, nav, main, article, aside y footer;
  • un único h1 por página, con secciones numeradas en h2;
  • figuras con figcaption;
  • tablas con thead;
  • fechas con time datetime;
  • rótulos con listas de definición.

El texto, las fórmulas (que llevan también MathML) y las tablas de verificación están en el HTML servido, no se generan con JavaScript, de modo que cualquier buscador los indexa sin ejecutar scripts.

Enlazado interno. Las piezas se enlazan entre sí:

  • cada guía enlaza sus calculadoras y sus guías relacionadas;
  • cada calculadora enlaza su guía;
  • cada artículo enlaza guías y herramientas para profundizar;
  • el glosario y el mapa de normas enlazan la guía donde se aplica cada término o norma.

Vocabulario. Los títulos usan los términos con que se busca en español (falla, confiabilidad, mantenimiento basado en condición) y el glosario conserva el término en inglés como nombre alternativo, para captar búsquedas mixtas.

Rendimiento

Peso de las páginas tipo, medido en esta compilación sobre los archivos generados. Incluye el HTML, la hoja de estilos (y la de KaTeX donde hay fórmulas) y los scripts que la página carga al abrirse. No incluye las tipografías, que se descargan una vez y quedan en caché, ni los scripts que se cargan solo al usarse: el índice del buscador y los widgets.

Página tipoHTMLCSSJavaScriptScriptsTotalTotal con gzip
Inicio35,5 kB54,1 kB6,9 kB196,6 kB23,8 kB
Guía (RCM)62,9 kB74,8 kB6,9 kB1144,7 kB34,5 kB
Calculadora (Weibull)43,8 kB74,8 kB49,9 kB2168,5 kB46,1 kB
Laboratorio (Monte Carlo)38,6 kB74,8 kB51,9 kB2165,4 kB45,3 kB
Dashboard26,4 kB54,1 kB67,3 kB2147,8 kB45,3 kB
Artículo del blog28,8 kB74,8 kB6,9 kB1110,6 kB25,8 kB

Qué lo mantiene liviano:

  • Sin framework: el marco de calculadoras, los gráficos y el tablero son código propio sin dependencias.
  • Cada página carga solo su script, empaquetado y minificado con esbuild: una guía no descarga el código de las calculadoras.
  • El índice del buscador se descarga al abrir el buscador por primera vez, y los widgets cuando aparecen en la página.
  • KaTeX no se ejecuta en el navegador. Su hoja de estilos se carga solo en las páginas con fórmulas.
  • Tipografías WOFF2 con subconjuntos por unicode-range y font-display: swap: el texto se muestra de inmediato aunque la tipografía no haya llegado.
  • Los gráficos se dibujan en SVG y se vuelven a dibujar solo cuando cambia el ancho del contenedor, con una espera de 80 ms.
  • La compresión gzip o brotli la aplica el servicio de alojamiento; la columna de la derecha muestra el peso que viaja con gzip.

Accesibilidad

El objetivo es WCAG 2.2 nivel AA.

Navegación y estructura

  • Enlace para saltar al contenido.
  • Contorno de foco visible de 2 píxeles en el color de señal.
  • Regiones con nombre, idioma declarado y jerarquía de títulos sin saltos.

Controles nativos

  • Los menús son <details> y el buscador es un <dialog>, de modo que el foco y la tecla Esc funcionan como el navegador espera.
  • El buscador sigue el patrón de lista de opciones con aria-activedescendant.

Formularios

  • Cada campo tiene su label, y la ayuda y el error se asocian con aria-describedby.
  • Los errores marcan el campo con aria-invalid y se anuncian en una región aria-live.
  • Los resultados de las calculadoras también se anuncian al recalcular.
  • Los campos numéricos piden el teclado decimal en el celular y aceptan coma o punto.

Gráficos y figuras

  • Cada gráfico tiene nombre accesible y se recorre con el teclado (flechas en los gráficos de líneas, tabulación en los de barras), que muestra el mismo cuadro de información que el puntero.
  • Cada gráfico tiene debajo su tabla de datos equivalente. Los minigráficos de los indicadores acompañan un valor que ya está escrito.
  • Los diagramas SVG llevan título y descripción.
  • El color nunca es el único portador de información: los estados llevan texto y las series, leyenda.

Contenedores con desplazamiento

  • Las tablas, fórmulas, figuras y bloques de texto que no entran en el ancho disponible se vuelven navegables con el teclado y se anuncian como regiones con nombre.
  • Esto pasa solo cuando desbordan, para no agregar paradas de tabulación innecesarias.

Movimiento, ampliación e impresión

  • La animación de entrada se desactiva con la preferencia de movimiento reducido.
  • El diseño se reacomoda en una columna hasta el 400 % de ampliación sin desplazamiento horizontal de la página.
  • La hoja de impresión deja solo el contenido, para guardar informes de calculadoras como PDF.

Contraste. Se verifica en la compilación con la tabla del sistema de diseño.

Diseño adaptable

El diseño se construye con grillas fluidas (minmax(0, 1fr)) y cortes en los anchos donde el contenido lo pide, no en tamaños de dispositivos:

Ancho Cambio
≤ 1180 px Indicadores del tablero en tres columnas
1021 a 1199 px Se oculta el atajo Ctrl K, para que entre la navegación completa
≤ 1080 px Guías en una columna: las guías relacionadas pasan arriba y el índice lateral se oculta. Gráficos del tablero de a dos
≤ 1020 px La navegación se pliega en el botón de menú
≤ 960 px Calculadoras en una columna: datos arriba y resultados abajo
≤ 900 px Portada en una columna; pie en dos columnas
≤ 860 px Bloques divididos y texto del kit en una columna
≤ 760 px Gráficos del tablero a ancho completo
≤ 640 px Lista de artículos en una columna
≤ 600 px Indicadores del tablero en dos columnas
≤ 520 px Menús en una columna; se oculta el subtítulo de la marca y «MODO» pasa a una línea chica arriba de «CONFIABILIDAD»

En pantallas angostas se aplican además estos criterios:

  • Las tablas anchas, las fórmulas largas y los diagramas se desplazan dentro de su propio contenedor; la página nunca se desplaza en horizontal.
  • Los diagramas conservan un ancho mínimo legible en lugar de achicar el texto.
  • Los gráficos se vuelven a dibujar con el ancho real y recalculan sus marcas de escala, no se escalan como una imagen.
  • Los controles miden al menos 32 píxeles de alto, por encima del mínimo de 24 de WCAG 2.2.
  • El área segura de las pantallas con muesca se respeta con viewport-fit=cover.

Benchmark

Las referencias del pliego se agruparon por tipo. La tabla describe lo que cada tipo de referencia hace bien y qué se tomó de eso; no evalúa a cada sitio en particular.

Tipo de referencia Ejemplos del pliego Lo que hacen bien Lo que se tomó La diferencia buscada
Comunidades y publicaciones técnicas Reliabilityweb, Accendo Reliability, Plant Services, Maintenance.org Volumen y frecuencia de publicación, voces de la práctica, archivo por tema Blog por series, autoría visible, artículos cortos que llevan a una guía Guías en español con estructura fija, fórmulas con fuente y cálculo verificado junto al texto
Asociaciones profesionales SMRP, IAM Cuerpos de conocimiento, definiciones normalizadas de indicadores, certificación Definición explícita de cada indicador con su fórmula y su norma; mapa de normas Acceso abierto, con la definición, el cálculo y el ejemplo en el mismo lugar
Formación especializada ARMS Reliability, Mobius Institute Rutas de aprendizaje por rol, ejercicios, certificaciones Rutas por perfil, ejercicios con respuesta y casos Ejercicios que se resuelven con las calculadoras del propio sitio
Software de gestión de mantenimiento Fiix, UpKeep, Limble Interfaces simples, tableros de indicadores, plantillas listas Tablero de ejemplo y plantillas descargables Sin producto que vender: el modelo de datos y las medidas DAX se entregan abiertos y verificados
Plataformas de gestión de activos IBM Maximo, SAP Modelos de datos de órdenes de trabajo, jerarquías de activos y códigos de falla Modelo estrella de órdenes y paradas con códigos de ISO 14224 Independiente de la plataforma: CSV, Power Query y DAX
Fabricantes y monitoreo de condición SKF, Emerson, ABB Ability Notas de aplicación y manuales técnicos de sus tecnologías Vida de rodamientos según ISO 281, dimensionamiento de válvulas según IEC 60534 y señales NAMUR NE 43 Métodos neutrales respecto del proveedor

En conjunto, Modo Confiabilidad ocupa un lugar que ninguna de estas referencias cubre sola:

  • contenido técnico en español, con la profundidad de una norma;
  • cálculo verificado y abierto;
  • modelos que muestran la incertidumbre, no solo el valor medio.

Auditoría

La revisión final se hizo desde los cinco roles que define el pliego, con las herramientas automáticas como evidencia. Cada observación se corrigió en el código antes de publicar.

Observaciones y correcciones

Rol Observación Corrección
Director global de confiabilidad La guía de OEE era la más breve y no distinguía la disponibilidad del OEE de la disponibilidad de un estudio de confiabilidad Se agregaron las seis grandes pérdidas con ejemplos de planta de proceso, la diferencia entre ambas disponibilidades y un ejemplo de proceso continuo con todos sus cálculos
Director global de confiabilidad El símbolo de la calculadora de disponibilidad operacional usaba un subíndice cero en lugar de la letra o Corregido a «Ao»
Director de gestión de activos La documentación no mostraba la correspondencia entre cada requisito del pliego y la página que lo cumple Se agregó la tabla de trazabilidad, y la compilación controla las ocho secciones de cada guía
Director de operaciones La guía de indicadores y el laboratorio describían el tablero con dos años de datos, pero el historial es de 36 meses Textos corregidos; el laboratorio separa ahora el tablero y el kit en su propia sección
CTO Sin política de seguridad de contenidos CSP sin unsafe-inline para scripts (el único script en línea va autorizado por hash) y cabeceras de seguridad. Cero violaciones con las cabeceras aplicadas
CTO CSS y JavaScript sin huella de versión con caché de siete días: tras una actualización podían mezclarse archivos de versiones distintas Revalidación en cada visita para CSS y JavaScript; caché larga solo para tipografías y KaTeX
CTO La página 404 perdía estilos y enlaces al servirse en una dirección inexistente con subcarpetas <base> con la raíz del sitio, solo en esa página
CTO robots.txt bloqueaba la documentación, que además lleva noindex: el buscador nunca vería esa indicación Se quitó el bloqueo y se mantiene noindex
CTO og:image apuntaba a un archivo que no existía, y siete títulos superaban los 70 caracteres Imagen para redes propia de cada página; título corto para buscadores en esas siete páginas
Responsable de UX En el celular, cinco calculadoras desplazaban la página entera de costado: los textos para lectores de pantalla y el MathML de KaTeX escapaban de sus contenedores. A 320 píxeles no entraba el encabezado Contenedores con desplazamiento posicionados, fieldset sin ancho mínimo, encabezado compacto, cortes de palabras largas y del código en línea. Ninguna página se desplaza en horizontal entre 320 y 1366 píxeles
Responsable de UX Entre 1021 y unos 1090 píxeles de ancho, el encabezado desplazaba la página de costado: la navegación completa no entraba junto al subtítulo de la marca Frase de la marca más corta y, entre 1021 y 1199 píxeles, sin el atajo Ctrl K; la auditoría suma una pasada a 1024 píxeles
Responsable de UX En pantallas angostas había textos que se pisaban: el panel de datos de las calculadoras anchas tapaba el comienzo de los resultados, y en los gráficos chocaban rótulos de referencia vecinos, valores negativos con el nombre de su variable y marcas de los ejes. Los nombres largos de las barras horizontales quedaban cortados Panel de datos sin desplazamiento fijo cuando no hay columna lateral; rótulos de gráficos medidos y ubicados sin choques, nombres arriba de la barra cuando no entran al costado. Un detector recorre todas las páginas en seis anchos
Responsable de UX Las lecturas del instrumento de inspección P-F se veían en dos columnas comprimidas dentro de la guía La regla general de listas de definición ya no afecta a los instrumentos
Responsable de UX Tarjetas huérfanas al final de las grillas Las tarjetas de la última fila se estiran hasta completar el ancho
Responsable de UX Esc no cerraba el buscador si había texto escrito Esc cierra el buscador y devuelve el foco al botón que lo abrió
Responsable de UX 114 resultados generados por JavaScript separaban número y unidad con un espacio común Espacio de no separación, como en el texto
Responsable de UX La primera pasada de axe-core marcó 22 combinaciones de regla y configuración. Entre ellas: rectángulos con nombre sin rol en los gráficos, la matriz de criticidad sin filas, encabezados vacíos, un salto de nivel de título, regiones con el mismo nombre, objetivos táctiles chicos, enlaces dentro de una imagen y la lista del buscador mal anidada Roles y nombres corregidos en gráficos, matriz, mapa del conocimiento y buscador; encabezados con texto; regiones con el nombre de su sección; objetivos de 24 píxeles

Verificación automática

Herramienta Alcance Resultado
Pruebas numéricas Modelos de calculadoras, laboratorio y tablero 104 superadas, 0 fallidas
html-validate 8.24, reglas recomendadas 59 páginas 0 errores
axe-core 4.10: WCAG 2.0, 2.1 y 2.2 niveles A y AA, más buenas prácticas 59 páginas en tema claro, tema oscuro y celular 0 violaciones
axe-core en estados interactivos Buscador abierto y cerrado, menú móvil, menú desplegable, error de datos, filtros del tablero, gráfico recorrido con el teclado 0 violaciones
Consola y política de seguridad 59 páginas en cinco configuraciones, con las cabeceras de _headers 0 errores, 0 violaciones
Reflujo a 320 píxeles (400 % de ampliación) 59 páginas Sin desplazamiento horizontal
Escritorio angosto, 1024 píxeles 59 páginas Sin desplazamiento horizontal
Textos superpuestos o cortados 59 páginas en seis anchos, de 320 a 1600 píxeles 0 casos
Enlaces, anclas y recursos 59 páginas 0 problemas
Sitio abierto desde el disco, sin servidor 13 calculadoras, 6 módulos, tablero, widgets y buscador Funcionan, sin errores
Prueba de humo 13 calculadoras y 6 módulos con todos sus ejemplos, y el tablero con filtros y orden Sin errores

Lo que falta verificar en producción

La auditoría automática no reemplaza tres controles que conviene hacer después de publicar:

  • Lector de pantalla. Recorrer una guía, una calculadora y el tablero con NVDA y VoiceOver.
  • Dispositivos reales. Probar en un teléfono Android de gama media y en un iPhone.
  • Rendimiento con el alojamiento definitivo. Medir con Lighthouse o WebPageTest, con la compresión y la red de distribución del servicio elegido.