+
+
+
+
diff --git a/i18n/locales/en.json b/i18n/locales/en.json
index 9d0f33ac8..1015182b8 100644
--- a/i18n/locales/en.json
+++ b/i18n/locales/en.json
@@ -1052,5 +1052,36 @@
"title": "Changes to this policy",
"p1": "We may update this privacy policy from time to time. Any changes will be published on this page with an updated revision date."
}
+ },
+ "a11y": {
+ "title": "accessibility statement",
+ "footer_title": "a11y",
+ "welcome": "We are committed to making the {app} site accessible to everyone.",
+ "commitment": {
+ "title": "Commitment to Accessibility",
+ "p1": "We continuously work to improve the user experience for everyone, applying relevant accessibility standards to ensure our site can be used by the widest possible audience, regardless of their abilities."
+ },
+ "compliance": {
+ "title": "Regulatory Framework and Compliance Status",
+ "p1": "This site has been developed to comply with the {guidelines} of the World Wide Web Consortium (W3C), aiming for a {aa} conformance level.",
+ "guidelines": "Web Content Accessibility Guidelines (WCAG 2.1)",
+ "aa": "Double-A (AA)",
+ "wcag_alt": "W3C WAI-AA WCAG 2.1 Conformance site (opens in a new window)"
+ },
+ "implementation": {
+ "title": "Implementation Measures",
+ "p1": "In addition to following the regulatory framework, we have taken the following measures to ensure the accessibility of this site:",
+ "li1": "The page semantics have been built using standard HTML5 and ARIA roles where necessary.",
+ "li2": "Text sizes are relative, allowing the user to adjust their size from the browser.",
+ "li3": "The design is responsive and allows for magnification (zoom) up to 250% without loss of content or functionality, exceeding the 200% minimum required by WCAG 2.1.",
+ "li4": "The color palette meets Level AA contrast ratios in its standard themes.",
+ "li5": "Keyboard navigation is logical and predictable.",
+ "li6": "Animations and transitions are reduced or eliminated for users who have requested reduced motion in their operating system or browser preferences."
+ },
+ "contact": {
+ "title": "Contact and Feedback",
+ "p1": "Accessibility is an ongoing effort. If you encounter any barriers or have any suggestions to improve the accessibility of {app}, please do not hesitate to contact us by opening an issue on our {link}.",
+ "link": "GitHub repository"
+ }
}
}
diff --git a/i18n/locales/es-419.json b/i18n/locales/es-419.json
index 4c2888ff9..6833130d7 100644
--- a/i18n/locales/es-419.json
+++ b/i18n/locales/es-419.json
@@ -30,5 +30,14 @@
"skeleton": {
"readme": "Léame"
}
+ },
+ "a11y": {
+ "commitment": {
+ "p1": "Trabajamos continuamente para mejorar la experiencia del usuario para todos, aplicando los estándares de accesibilidad pertinentes para garantizar que nuestro portal pueda ser utilizado por la audiencia más amplia posible, independientemente de sus habilidades."
+ },
+ "contact": {
+ "title": "Contacto y Retroalimentación",
+ "p1": "La accesibilidad es un esfuerzo continuo. Si encuentras alguna barrera o tienes alguna sugerencia para mejorar la accesibilidad de {app}, por favor no dudes en contactarnos abriendo un problema (issue) en nuestro {link}."
+ }
}
}
diff --git a/i18n/locales/es.json b/i18n/locales/es.json
index fe40402f0..29aac6c66 100644
--- a/i18n/locales/es.json
+++ b/i18n/locales/es.json
@@ -935,5 +935,36 @@
"vulnerabilities_summary": "{count} ({critical}C/{high}H)"
}
}
+ },
+ "a11y": {
+ "title": "declaración de accesibilidad",
+ "footer_title": "accesibilidad",
+ "welcome": "Nos comprometemos a hacer que el sitio {app} sea accesible para todos.",
+ "commitment": {
+ "title": "Compromiso con la Accesibilidad",
+ "p1": "Trabajamos continuamente para mejorar la experiencia de usuario para todos, aplicando los estándares de accesibilidad pertinentes para garantizar que nuestro sitio web pueda ser utilizado por la audiencia más amplia posible, independientemente de sus capacidades."
+ },
+ "compliance": {
+ "title": "Marco Normativo y Estado de Cumplimiento",
+ "p1": "Este sitio web ha sido desarrollado para cumplir con las {guidelines} del World Wide Web Consortium (W3C), con el objetivo de alcanzar un nivel de conformidad {aa}.",
+ "guidelines": "Pautas de Accesibilidad para el Contenido Web (WCAG 2.1)",
+ "aa": "Doble-A (AA)",
+ "wcag_alt": "Sitio web de Conformidad W3C WAI-AA WCAG 2.1 (se abre en una nueva ventana)"
+ },
+ "implementation": {
+ "title": "Medidas de Implementación",
+ "p1": "Además de seguir el marco normativo, hemos tomado las siguientes medidas para garantizar la accesibilidad de este sitio web:",
+ "li1": "La semántica de la página se ha construido utilizando HTML5 estándar y roles ARIA donde es necesario.",
+ "li2": "Los tamaños de texto son relativos, permitiendo al usuario ajustar su tamaño desde el navegador.",
+ "li3": "El diseño es responsivo y permite una ampliación (zoom) de hasta el 250% sin pérdida de contenido o funcionalidad, superando el mínimo del 200% requerido por WCAG 2.1.",
+ "li4": "La paleta de colores cumple con los ratios de contraste de Nivel AA en sus temas estándar.",
+ "li5": "La navegación por teclado es lógica y predecible.",
+ "li6": "Las animaciones y transiciones se reducen o eliminan para los usuarios que han solicitado movimiento reducido en las preferencias de su sistema operativo o del navegador."
+ },
+ "contact": {
+ "title": "Contacto y Comentarios",
+ "p1": "La accesibilidad es un esfuerzo continuo. Si encuentras alguna barrera o tienes alguna sugerencia para mejorar la accesibilidad de {app}, no dudes en contactarnos abriendo un problema (issue) en nuestro {link}.",
+ "link": "repositorio de GitHub"
+ }
}
}
diff --git a/lunaria/files/en-GB.json b/lunaria/files/en-GB.json
index 34f763a9c..c90dd23d2 100644
--- a/lunaria/files/en-GB.json
+++ b/lunaria/files/en-GB.json
@@ -1052,5 +1052,36 @@
"title": "Changes to this policy",
"p1": "We may update this privacy policy from time to time. Any changes will be published on this page with an updated revision date."
}
+ },
+ "a11y": {
+ "title": "accessibility statement",
+ "footer_title": "a11y",
+ "welcome": "We are committed to making the {app} site accessible to everyone.",
+ "commitment": {
+ "title": "Commitment to Accessibility",
+ "p1": "We continuously work to improve the user experience for everyone, applying relevant accessibility standards to ensure our site can be used by the widest possible audience, regardless of their abilities."
+ },
+ "compliance": {
+ "title": "Regulatory Framework and Compliance Status",
+ "p1": "This site has been developed to comply with the {guidelines} of the World Wide Web Consortium (W3C), aiming for a {aa} conformance level.",
+ "guidelines": "Web Content Accessibility Guidelines (WCAG 2.1)",
+ "aa": "Double-A (AA)",
+ "wcag_alt": "W3C WAI-AA WCAG 2.1 Conformance site (opens in a new window)"
+ },
+ "implementation": {
+ "title": "Implementation Measures",
+ "p1": "In addition to following the regulatory framework, we have taken the following measures to ensure the accessibility of this site:",
+ "li1": "The page semantics have been built using standard HTML5 and ARIA roles where necessary.",
+ "li2": "Text sizes are relative, allowing the user to adjust their size from the browser.",
+ "li3": "The design is responsive and allows for magnification (zoom) up to 250% without loss of content or functionality, exceeding the 200% minimum required by WCAG 2.1.",
+ "li4": "The color palette meets Level AA contrast ratios in its standard themes.",
+ "li5": "Keyboard navigation is logical and predictable.",
+ "li6": "Animations and transitions are reduced or eliminated for users who have requested reduced motion in their operating system or browser preferences."
+ },
+ "contact": {
+ "title": "Contact and Feedback",
+ "p1": "Accessibility is an ongoing effort. If you encounter any barriers or have any suggestions to improve the accessibility of {app}, please do not hesitate to contact us by opening an issue on our {link}.",
+ "link": "GitHub repository"
+ }
}
}
diff --git a/lunaria/files/en-US.json b/lunaria/files/en-US.json
index 9d0f33ac8..1015182b8 100644
--- a/lunaria/files/en-US.json
+++ b/lunaria/files/en-US.json
@@ -1052,5 +1052,36 @@
"title": "Changes to this policy",
"p1": "We may update this privacy policy from time to time. Any changes will be published on this page with an updated revision date."
}
+ },
+ "a11y": {
+ "title": "accessibility statement",
+ "footer_title": "a11y",
+ "welcome": "We are committed to making the {app} site accessible to everyone.",
+ "commitment": {
+ "title": "Commitment to Accessibility",
+ "p1": "We continuously work to improve the user experience for everyone, applying relevant accessibility standards to ensure our site can be used by the widest possible audience, regardless of their abilities."
+ },
+ "compliance": {
+ "title": "Regulatory Framework and Compliance Status",
+ "p1": "This site has been developed to comply with the {guidelines} of the World Wide Web Consortium (W3C), aiming for a {aa} conformance level.",
+ "guidelines": "Web Content Accessibility Guidelines (WCAG 2.1)",
+ "aa": "Double-A (AA)",
+ "wcag_alt": "W3C WAI-AA WCAG 2.1 Conformance site (opens in a new window)"
+ },
+ "implementation": {
+ "title": "Implementation Measures",
+ "p1": "In addition to following the regulatory framework, we have taken the following measures to ensure the accessibility of this site:",
+ "li1": "The page semantics have been built using standard HTML5 and ARIA roles where necessary.",
+ "li2": "Text sizes are relative, allowing the user to adjust their size from the browser.",
+ "li3": "The design is responsive and allows for magnification (zoom) up to 250% without loss of content or functionality, exceeding the 200% minimum required by WCAG 2.1.",
+ "li4": "The color palette meets Level AA contrast ratios in its standard themes.",
+ "li5": "Keyboard navigation is logical and predictable.",
+ "li6": "Animations and transitions are reduced or eliminated for users who have requested reduced motion in their operating system or browser preferences."
+ },
+ "contact": {
+ "title": "Contact and Feedback",
+ "p1": "Accessibility is an ongoing effort. If you encounter any barriers or have any suggestions to improve the accessibility of {app}, please do not hesitate to contact us by opening an issue on our {link}.",
+ "link": "GitHub repository"
+ }
}
}
diff --git a/lunaria/files/es-419.json b/lunaria/files/es-419.json
index 2e650460e..4d00c7e69 100644
--- a/lunaria/files/es-419.json
+++ b/lunaria/files/es-419.json
@@ -935,5 +935,36 @@
"vulnerabilities_summary": "{count} ({critical}C/{high}H)"
}
}
+ },
+ "a11y": {
+ "title": "declaración de accesibilidad",
+ "footer_title": "accesibilidad",
+ "welcome": "Nos comprometemos a hacer que el sitio {app} sea accesible para todos.",
+ "commitment": {
+ "title": "Compromiso con la Accesibilidad",
+ "p1": "Trabajamos continuamente para mejorar la experiencia del usuario para todos, aplicando los estándares de accesibilidad pertinentes para garantizar que nuestro portal pueda ser utilizado por la audiencia más amplia posible, independientemente de sus habilidades."
+ },
+ "compliance": {
+ "title": "Marco Normativo y Estado de Cumplimiento",
+ "p1": "Este sitio web ha sido desarrollado para cumplir con las {guidelines} del World Wide Web Consortium (W3C), con el objetivo de alcanzar un nivel de conformidad {aa}.",
+ "guidelines": "Pautas de Accesibilidad para el Contenido Web (WCAG 2.1)",
+ "aa": "Doble-A (AA)",
+ "wcag_alt": "Sitio web de Conformidad W3C WAI-AA WCAG 2.1 (se abre en una nueva ventana)"
+ },
+ "implementation": {
+ "title": "Medidas de Implementación",
+ "p1": "Además de seguir el marco normativo, hemos tomado las siguientes medidas para garantizar la accesibilidad de este sitio web:",
+ "li1": "La semántica de la página se ha construido utilizando HTML5 estándar y roles ARIA donde es necesario.",
+ "li2": "Los tamaños de texto son relativos, permitiendo al usuario ajustar su tamaño desde el navegador.",
+ "li3": "El diseño es responsivo y permite una ampliación (zoom) de hasta el 250% sin pérdida de contenido o funcionalidad, superando el mínimo del 200% requerido por WCAG 2.1.",
+ "li4": "La paleta de colores cumple con los ratios de contraste de Nivel AA en sus temas estándar.",
+ "li5": "La navegación por teclado es lógica y predecible.",
+ "li6": "Las animaciones y transiciones se reducen o eliminan para los usuarios que han solicitado movimiento reducido en las preferencias de su sistema operativo o del navegador."
+ },
+ "contact": {
+ "title": "Contacto y Retroalimentación",
+ "p1": "La accesibilidad es un esfuerzo continuo. Si encuentras alguna barrera o tienes alguna sugerencia para mejorar la accesibilidad de {app}, por favor no dudes en contactarnos abriendo un problema (issue) en nuestro {link}.",
+ "link": "repositorio de GitHub"
+ }
}
}
diff --git a/lunaria/files/es-ES.json b/lunaria/files/es-ES.json
index fe40402f0..29aac6c66 100644
--- a/lunaria/files/es-ES.json
+++ b/lunaria/files/es-ES.json
@@ -935,5 +935,36 @@
"vulnerabilities_summary": "{count} ({critical}C/{high}H)"
}
}
+ },
+ "a11y": {
+ "title": "declaración de accesibilidad",
+ "footer_title": "accesibilidad",
+ "welcome": "Nos comprometemos a hacer que el sitio {app} sea accesible para todos.",
+ "commitment": {
+ "title": "Compromiso con la Accesibilidad",
+ "p1": "Trabajamos continuamente para mejorar la experiencia de usuario para todos, aplicando los estándares de accesibilidad pertinentes para garantizar que nuestro sitio web pueda ser utilizado por la audiencia más amplia posible, independientemente de sus capacidades."
+ },
+ "compliance": {
+ "title": "Marco Normativo y Estado de Cumplimiento",
+ "p1": "Este sitio web ha sido desarrollado para cumplir con las {guidelines} del World Wide Web Consortium (W3C), con el objetivo de alcanzar un nivel de conformidad {aa}.",
+ "guidelines": "Pautas de Accesibilidad para el Contenido Web (WCAG 2.1)",
+ "aa": "Doble-A (AA)",
+ "wcag_alt": "Sitio web de Conformidad W3C WAI-AA WCAG 2.1 (se abre en una nueva ventana)"
+ },
+ "implementation": {
+ "title": "Medidas de Implementación",
+ "p1": "Además de seguir el marco normativo, hemos tomado las siguientes medidas para garantizar la accesibilidad de este sitio web:",
+ "li1": "La semántica de la página se ha construido utilizando HTML5 estándar y roles ARIA donde es necesario.",
+ "li2": "Los tamaños de texto son relativos, permitiendo al usuario ajustar su tamaño desde el navegador.",
+ "li3": "El diseño es responsivo y permite una ampliación (zoom) de hasta el 250% sin pérdida de contenido o funcionalidad, superando el mínimo del 200% requerido por WCAG 2.1.",
+ "li4": "La paleta de colores cumple con los ratios de contraste de Nivel AA en sus temas estándar.",
+ "li5": "La navegación por teclado es lógica y predecible.",
+ "li6": "Las animaciones y transiciones se reducen o eliminan para los usuarios que han solicitado movimiento reducido en las preferencias de su sistema operativo o del navegador."
+ },
+ "contact": {
+ "title": "Contacto y Comentarios",
+ "p1": "La accesibilidad es un esfuerzo continuo. Si encuentras alguna barrera o tienes alguna sugerencia para mejorar la accesibilidad de {app}, no dudes en contactarnos abriendo un problema (issue) en nuestro {link}.",
+ "link": "repositorio de GitHub"
+ }
}
}
diff --git a/nuxt.config.ts b/nuxt.config.ts
index 2b7207723..e28062343 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -119,6 +119,7 @@ export default defineNuxtConfig({
// static pages
'/': { prerender: true },
'/200.html': { prerender: true },
+ '/accessibility': { prerender: true },
'/about': { prerender: true },
'/privacy': { prerender: true },
'/search': { isr: false, cache: false }, // never cache
diff --git a/public/wcag2.1AA.svg b/public/wcag2.1AA.svg
new file mode 100644
index 000000000..167e4d50b
--- /dev/null
+++ b/public/wcag2.1AA.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/server/middleware/canonical-redirects.global.ts b/server/middleware/canonical-redirects.global.ts
index e35e5aea7..8b49c6a73 100644
--- a/server/middleware/canonical-redirects.global.ts
+++ b/server/middleware/canonical-redirects.global.ts
@@ -14,6 +14,7 @@
*/
const pages = [
'/200.html',
+ '/accessibility',
'/about',
'/compare',
'/org',
From 2a8f9fb53eba4ee30e0eeac9961b52b755af2a64 Mon Sep 17 00:00:00 2001
From: userquin
Date: Fri, 6 Feb 2026 15:35:48 +0100
Subject: [PATCH 02/10] chore: include JS entry
---
i18n/locales/en.json | 3 ++-
i18n/locales/es.json | 3 ++-
lunaria/files/en-GB.json | 3 ++-
lunaria/files/en-US.json | 3 ++-
lunaria/files/es-419.json | 3 ++-
lunaria/files/es-ES.json | 3 ++-
6 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/i18n/locales/en.json b/i18n/locales/en.json
index 1015182b8..20393ca80 100644
--- a/i18n/locales/en.json
+++ b/i18n/locales/en.json
@@ -1076,7 +1076,8 @@
"li3": "The design is responsive and allows for magnification (zoom) up to 250% without loss of content or functionality, exceeding the 200% minimum required by WCAG 2.1.",
"li4": "The color palette meets Level AA contrast ratios in its standard themes.",
"li5": "Keyboard navigation is logical and predictable.",
- "li6": "Animations and transitions are reduced or eliminated for users who have requested reduced motion in their operating system or browser preferences."
+ "li6": "Animations and transitions are reduced or eliminated for users who have requested reduced motion in their operating system or browser preferences.",
+ "li7": "The site employs progressive enhancement, ensuring essential content remains accessible without JavaScript, although some personalization features may require it."
},
"contact": {
"title": "Contact and Feedback",
diff --git a/i18n/locales/es.json b/i18n/locales/es.json
index 29aac6c66..fce96183f 100644
--- a/i18n/locales/es.json
+++ b/i18n/locales/es.json
@@ -959,7 +959,8 @@
"li3": "El diseño es responsivo y permite una ampliación (zoom) de hasta el 250% sin pérdida de contenido o funcionalidad, superando el mínimo del 200% requerido por WCAG 2.1.",
"li4": "La paleta de colores cumple con los ratios de contraste de Nivel AA en sus temas estándar.",
"li5": "La navegación por teclado es lógica y predecible.",
- "li6": "Las animaciones y transiciones se reducen o eliminan para los usuarios que han solicitado movimiento reducido en las preferencias de su sistema operativo o del navegador."
+ "li6": "Las animaciones y transiciones se reducen o eliminan para los usuarios que han solicitado movimiento reducido en las preferencias de su sistema operativo o del navegador.",
+ "li7": "El sitio web emplea mejora progresiva, asegurando que el contenido esencial permanezca accesible sin JavaScript, aunque algunas funciones de personalización pueden requerirlo."
},
"contact": {
"title": "Contacto y Comentarios",
diff --git a/lunaria/files/en-GB.json b/lunaria/files/en-GB.json
index c90dd23d2..f88f908da 100644
--- a/lunaria/files/en-GB.json
+++ b/lunaria/files/en-GB.json
@@ -1076,7 +1076,8 @@
"li3": "The design is responsive and allows for magnification (zoom) up to 250% without loss of content or functionality, exceeding the 200% minimum required by WCAG 2.1.",
"li4": "The color palette meets Level AA contrast ratios in its standard themes.",
"li5": "Keyboard navigation is logical and predictable.",
- "li6": "Animations and transitions are reduced or eliminated for users who have requested reduced motion in their operating system or browser preferences."
+ "li6": "Animations and transitions are reduced or eliminated for users who have requested reduced motion in their operating system or browser preferences.",
+ "li7": "The site employs progressive enhancement, ensuring essential content remains accessible without JavaScript, although some personalization features may require it."
},
"contact": {
"title": "Contact and Feedback",
diff --git a/lunaria/files/en-US.json b/lunaria/files/en-US.json
index 1015182b8..20393ca80 100644
--- a/lunaria/files/en-US.json
+++ b/lunaria/files/en-US.json
@@ -1076,7 +1076,8 @@
"li3": "The design is responsive and allows for magnification (zoom) up to 250% without loss of content or functionality, exceeding the 200% minimum required by WCAG 2.1.",
"li4": "The color palette meets Level AA contrast ratios in its standard themes.",
"li5": "Keyboard navigation is logical and predictable.",
- "li6": "Animations and transitions are reduced or eliminated for users who have requested reduced motion in their operating system or browser preferences."
+ "li6": "Animations and transitions are reduced or eliminated for users who have requested reduced motion in their operating system or browser preferences.",
+ "li7": "The site employs progressive enhancement, ensuring essential content remains accessible without JavaScript, although some personalization features may require it."
},
"contact": {
"title": "Contact and Feedback",
diff --git a/lunaria/files/es-419.json b/lunaria/files/es-419.json
index 4d00c7e69..1d75efd71 100644
--- a/lunaria/files/es-419.json
+++ b/lunaria/files/es-419.json
@@ -959,7 +959,8 @@
"li3": "El diseño es responsivo y permite una ampliación (zoom) de hasta el 250% sin pérdida de contenido o funcionalidad, superando el mínimo del 200% requerido por WCAG 2.1.",
"li4": "La paleta de colores cumple con los ratios de contraste de Nivel AA en sus temas estándar.",
"li5": "La navegación por teclado es lógica y predecible.",
- "li6": "Las animaciones y transiciones se reducen o eliminan para los usuarios que han solicitado movimiento reducido en las preferencias de su sistema operativo o del navegador."
+ "li6": "Las animaciones y transiciones se reducen o eliminan para los usuarios que han solicitado movimiento reducido en las preferencias de su sistema operativo o del navegador.",
+ "li7": "El sitio web emplea mejora progresiva, asegurando que el contenido esencial permanezca accesible sin JavaScript, aunque algunas funciones de personalización pueden requerirlo."
},
"contact": {
"title": "Contacto y Retroalimentación",
diff --git a/lunaria/files/es-ES.json b/lunaria/files/es-ES.json
index 29aac6c66..fce96183f 100644
--- a/lunaria/files/es-ES.json
+++ b/lunaria/files/es-ES.json
@@ -959,7 +959,8 @@
"li3": "El diseño es responsivo y permite una ampliación (zoom) de hasta el 250% sin pérdida de contenido o funcionalidad, superando el mínimo del 200% requerido por WCAG 2.1.",
"li4": "La paleta de colores cumple con los ratios de contraste de Nivel AA en sus temas estándar.",
"li5": "La navegación por teclado es lógica y predecible.",
- "li6": "Las animaciones y transiciones se reducen o eliminan para los usuarios que han solicitado movimiento reducido en las preferencias de su sistema operativo o del navegador."
+ "li6": "Las animaciones y transiciones se reducen o eliminan para los usuarios que han solicitado movimiento reducido en las preferencias de su sistema operativo o del navegador.",
+ "li7": "El sitio web emplea mejora progresiva, asegurando que el contenido esencial permanezca accesible sin JavaScript, aunque algunas funciones de personalización pueden requerirlo."
},
"contact": {
"title": "Contacto y Comentarios",
From bddea5d8c624bd1e36d2749bc2a02b6c3d8d68b3 Mon Sep 17 00:00:00 2001
From: userquin
Date: Fri, 6 Feb 2026 15:48:59 +0100
Subject: [PATCH 03/10] chore: remove aria-hidden from wcag svg logo
---
app/pages/accessibility.vue | 1 -
1 file changed, 1 deletion(-)
diff --git a/app/pages/accessibility.vue b/app/pages/accessibility.vue
index f506497b9..9d33b0004 100644
--- a/app/pages/accessibility.vue
+++ b/app/pages/accessibility.vue
@@ -81,7 +81,6 @@ const router = useRouter()
src="/wcag2.1AA.svg"
width="88"
height="32"
- aria-hidden="true"
:alt="$t('a11y.compliance.wcag_alt')"
/>
From 6be576ae6701ef9ba8fa809a9218bd83fde84ea0 Mon Sep 17 00:00:00 2001
From: userquin
Date: Fri, 6 Feb 2026 15:50:12 +0100
Subject: [PATCH 04/10] chore: add li7 JS entry to the template
---
app/pages/accessibility.vue | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/app/pages/accessibility.vue b/app/pages/accessibility.vue
index 9d33b0004..af9a19cca 100644
--- a/app/pages/accessibility.vue
+++ b/app/pages/accessibility.vue
@@ -119,6 +119,10 @@ const router = useRouter()
—{{ $t('a11y.implementation.li6') }}
+
{{ $t('a11y.contact.title') }}
diff --git a/i18n/locales/en.json b/i18n/locales/en.json
index 1ab8c3b7e..b83fcc59b 100644
--- a/i18n/locales/en.json
+++ b/i18n/locales/en.json
@@ -1067,34 +1067,32 @@
}
},
"a11y": {
- "title": "accessibility statement",
+ "title": "accessibility",
"footer_title": "a11y",
- "welcome": "We are committed to making the {app} site accessible to everyone.",
- "commitment": {
- "title": "Commitment to Accessibility",
- "p1": "We continuously work to improve the user experience for everyone, applying relevant accessibility standards to ensure our site can be used by the widest possible audience, regardless of their abilities."
- },
- "compliance": {
- "title": "Regulatory Framework and Compliance Status",
- "p1": "This site has been developed to comply with the {guidelines} of the World Wide Web Consortium (W3C), aiming for a {aa} conformance level.",
- "guidelines": "Web Content Accessibility Guidelines (WCAG 2.1)",
- "aa": "Double-A (AA)",
- "wcag_alt": "W3C WAI-AA WCAG 2.1 Conformance site (opens in a new window)"
- },
- "implementation": {
- "title": "Implementation Measures",
- "p1": "In addition to following the regulatory framework, we have taken the following measures to ensure the accessibility of this site:",
- "li1": "The page semantics have been built using standard HTML5 and ARIA roles where necessary.",
- "li2": "Text sizes are relative, allowing the user to adjust their size from the browser.",
- "li3": "The design is responsive and allows for magnification (zoom) up to 250% without loss of content or functionality, exceeding the 200% minimum required by WCAG 2.1.",
- "li4": "The color palette meets Level AA contrast ratios in its standard themes.",
- "li5": "Keyboard navigation is logical and predictable.",
- "li6": "Animations and transitions are reduced or eliminated for users who have requested reduced motion in their operating system or browser preferences.",
- "li7": "The site employs progressive enhancement, ensuring essential content remains accessible without JavaScript, although some personalization features may require it."
+ "welcome": "We want {app} to be usable by as many people as possible.",
+ "approach": {
+ "title": "Our approach",
+ "p1": "We try to follow the Web Content Accessibility Guidelines (WCAG) 2.2 and use them as a reference when building features. We don't claim full conformance with any level of WCAG — accessibility is a continual process and there is always more work to do.",
+ "p2": "This site is an {about}. Accessibility improvements are made incrementally as part of our regular development.",
+ "about_link": "open-source, community-driven project"
+ },
+ "measures": {
+ "title": "What we do",
+ "p1": "Some of the things we aim to do across the site:",
+ "li1": "Use semantic HTML and ARIA attributes where appropriate.",
+ "li2": "Use relative text sizes so you can adjust them in your browser.",
+ "li3": "Support keyboard navigation throughout the interface.",
+ "li4": "Respect the prefers-reduced-motion and prefers-color-scheme media queries.",
+ "li5": "Design with sufficient color contrast in mind.",
+ "li6": "Ensure essential content is available without JavaScript, though some interactive features require it."
+ },
+ "limitations": {
+ "title": "Known limitations",
+ "p1": "Some parts of the site — particularly third-party content like package READMEs — may not meet accessibility standards. We are working to improve these areas over time."
},
"contact": {
- "title": "Contact and Feedback",
- "p1": "Accessibility is an ongoing effort. If you encounter any barriers or have any suggestions to improve the accessibility of {app}, please do not hesitate to contact us by opening an issue on our {link}.",
+ "title": "Feedback",
+ "p1": "If you encounter an accessibility barrier on {app}, please let us know by opening an issue on our {link}. We take these reports seriously and will do our best to address them.",
"link": "GitHub repository"
}
}
diff --git a/i18n/locales/es-419.json b/i18n/locales/es-419.json
index 3da302232..a8061c7ff 100644
--- a/i18n/locales/es-419.json
+++ b/i18n/locales/es-419.json
@@ -34,14 +34,5 @@
"typeahead_description": "¡Compara contra no usar una dependencia! Aprobado por e18e.",
"tooltip_description": "¡Compara contra no usar una dependencia! La {link} mantiene una lista de paquetes que pueden ser reemplazados con APIs nativas o alternativas más simples."
}
- },
- "a11y": {
- "commitment": {
- "p1": "Trabajamos continuamente para mejorar la experiencia del usuario para todos, aplicando los estándares de accesibilidad pertinentes para garantizar que nuestro portal pueda ser utilizado por la audiencia más amplia posible, independientemente de sus habilidades."
- },
- "contact": {
- "title": "Contacto y Retroalimentación",
- "p1": "La accesibilidad es un esfuerzo continuo. Si encuentras alguna barrera o tienes alguna sugerencia para mejorar la accesibilidad de {app}, por favor no dudes en contactarnos abriendo un problema (issue) en nuestro {link}."
- }
}
}
diff --git a/i18n/locales/es.json b/i18n/locales/es.json
index 3b374c194..13483b8d5 100644
--- a/i18n/locales/es.json
+++ b/i18n/locales/es.json
@@ -1019,37 +1019,5 @@
"title": "Cambios en esta política",
"p1": "Podemos actualizar esta política de privacidad ocasionalmente. Cualquier cambio se publicará en esta página con una fecha de revisión actualizada."
}
- },
- "a11y": {
- "title": "declaración de accesibilidad",
- "footer_title": "accesibilidad",
- "welcome": "Nos comprometemos a hacer que el sitio {app} sea accesible para todos.",
- "commitment": {
- "title": "Compromiso con la Accesibilidad",
- "p1": "Trabajamos continuamente para mejorar la experiencia de usuario para todos, aplicando los estándares de accesibilidad pertinentes para garantizar que nuestro sitio web pueda ser utilizado por la audiencia más amplia posible, independientemente de sus capacidades."
- },
- "compliance": {
- "title": "Marco Normativo y Estado de Cumplimiento",
- "p1": "Este sitio web ha sido desarrollado para cumplir con las {guidelines} del World Wide Web Consortium (W3C), con el objetivo de alcanzar un nivel de conformidad {aa}.",
- "guidelines": "Pautas de Accesibilidad para el Contenido Web (WCAG 2.1)",
- "aa": "Doble-A (AA)",
- "wcag_alt": "Sitio web de Conformidad W3C WAI-AA WCAG 2.1 (se abre en una nueva ventana)"
- },
- "implementation": {
- "title": "Medidas de Implementación",
- "p1": "Además de seguir el marco normativo, hemos tomado las siguientes medidas para garantizar la accesibilidad de este sitio web:",
- "li1": "La semántica de la página se ha construido utilizando HTML5 estándar y roles ARIA donde es necesario.",
- "li2": "Los tamaños de texto son relativos, permitiendo al usuario ajustar su tamaño desde el navegador.",
- "li3": "El diseño es responsivo y permite una ampliación (zoom) de hasta el 250% sin pérdida de contenido o funcionalidad, superando el mínimo del 200% requerido por WCAG 2.1.",
- "li4": "La paleta de colores cumple con los ratios de contraste de Nivel AA en sus temas estándar.",
- "li5": "La navegación por teclado es lógica y predecible.",
- "li6": "Las animaciones y transiciones se reducen o eliminan para los usuarios que han solicitado movimiento reducido en las preferencias de su sistema operativo o del navegador.",
- "li7": "El sitio web emplea mejora progresiva, asegurando que el contenido esencial permanezca accesible sin JavaScript, aunque algunas funciones de personalización pueden requerirlo."
- },
- "contact": {
- "title": "Contacto y Comentarios",
- "p1": "La accesibilidad es un esfuerzo continuo. Si encuentras alguna barrera o tienes alguna sugerencia para mejorar la accesibilidad de {app}, no dudes en contactarnos abriendo un problema (issue) en nuestro {link}.",
- "link": "repositorio de GitHub"
- }
}
}
diff --git a/i18n/schema.json b/i18n/schema.json
index 541930487..47977f0b2 100644
--- a/i18n/schema.json
+++ b/i18n/schema.json
@@ -3202,6 +3202,96 @@
},
"additionalProperties": false
},
+ "a11y": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "footer_title": {
+ "type": "string"
+ },
+ "welcome": {
+ "type": "string"
+ },
+ "approach": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "p1": {
+ "type": "string"
+ },
+ "p2": {
+ "type": "string"
+ },
+ "about_link": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "measures": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "p1": {
+ "type": "string"
+ },
+ "li1": {
+ "type": "string"
+ },
+ "li2": {
+ "type": "string"
+ },
+ "li3": {
+ "type": "string"
+ },
+ "li4": {
+ "type": "string"
+ },
+ "li5": {
+ "type": "string"
+ },
+ "li6": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "limitations": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "p1": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "contact": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "p1": {
+ "type": "string"
+ },
+ "link": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
"$schema": {
"type": "string"
}
diff --git a/lunaria/files/en-GB.json b/lunaria/files/en-GB.json
index 151ede92a..56f795555 100644
--- a/lunaria/files/en-GB.json
+++ b/lunaria/files/en-GB.json
@@ -1066,34 +1066,32 @@
}
},
"a11y": {
- "title": "accessibility statement",
+ "title": "accessibility",
"footer_title": "a11y",
- "welcome": "We are committed to making the {app} site accessible to everyone.",
- "commitment": {
- "title": "Commitment to Accessibility",
- "p1": "We continuously work to improve the user experience for everyone, applying relevant accessibility standards to ensure our site can be used by the widest possible audience, regardless of their abilities."
- },
- "compliance": {
- "title": "Regulatory Framework and Compliance Status",
- "p1": "This site has been developed to comply with the {guidelines} of the World Wide Web Consortium (W3C), aiming for a {aa} conformance level.",
- "guidelines": "Web Content Accessibility Guidelines (WCAG 2.1)",
- "aa": "Double-A (AA)",
- "wcag_alt": "W3C WAI-AA WCAG 2.1 Conformance site (opens in a new window)"
- },
- "implementation": {
- "title": "Implementation Measures",
- "p1": "In addition to following the regulatory framework, we have taken the following measures to ensure the accessibility of this site:",
- "li1": "The page semantics have been built using standard HTML5 and ARIA roles where necessary.",
- "li2": "Text sizes are relative, allowing the user to adjust their size from the browser.",
- "li3": "The design is responsive and allows for magnification (zoom) up to 250% without loss of content or functionality, exceeding the 200% minimum required by WCAG 2.1.",
- "li4": "The color palette meets Level AA contrast ratios in its standard themes.",
- "li5": "Keyboard navigation is logical and predictable.",
- "li6": "Animations and transitions are reduced or eliminated for users who have requested reduced motion in their operating system or browser preferences.",
- "li7": "The site employs progressive enhancement, ensuring essential content remains accessible without JavaScript, although some personalization features may require it."
+ "welcome": "We want {app} to be usable by as many people as possible.",
+ "approach": {
+ "title": "Our approach",
+ "p1": "We try to follow the Web Content Accessibility Guidelines (WCAG) 2.2 and use them as a reference when building features. We don't claim full conformance with any level of WCAG — accessibility is a continual process and there is always more work to do.",
+ "p2": "This site is an {about}. Accessibility improvements are made incrementally as part of our regular development.",
+ "about_link": "open-source, community-driven project"
+ },
+ "measures": {
+ "title": "What we do",
+ "p1": "Some of the things we aim to do across the site:",
+ "li1": "Use semantic HTML and ARIA attributes where appropriate.",
+ "li2": "Use relative text sizes so you can adjust them in your browser.",
+ "li3": "Support keyboard navigation throughout the interface.",
+ "li4": "Respect the prefers-reduced-motion and prefers-color-scheme media queries.",
+ "li5": "Design with sufficient color contrast in mind.",
+ "li6": "Ensure essential content is available without JavaScript, though some interactive features require it."
+ },
+ "limitations": {
+ "title": "Known limitations",
+ "p1": "Some parts of the site — particularly third-party content like package READMEs — may not meet accessibility standards. We are working to improve these areas over time."
},
"contact": {
- "title": "Contact and Feedback",
- "p1": "Accessibility is an ongoing effort. If you encounter any barriers or have any suggestions to improve the accessibility of {app}, please do not hesitate to contact us by opening an issue on our {link}.",
+ "title": "Feedback",
+ "p1": "If you encounter an accessibility barrier on {app}, please let us know by opening an issue on our {link}. We take these reports seriously and will do our best to address them.",
"link": "GitHub repository"
}
}
diff --git a/lunaria/files/en-US.json b/lunaria/files/en-US.json
index 2678bf454..d8666cdf5 100644
--- a/lunaria/files/en-US.json
+++ b/lunaria/files/en-US.json
@@ -1066,34 +1066,32 @@
}
},
"a11y": {
- "title": "accessibility statement",
+ "title": "accessibility",
"footer_title": "a11y",
- "welcome": "We are committed to making the {app} site accessible to everyone.",
- "commitment": {
- "title": "Commitment to Accessibility",
- "p1": "We continuously work to improve the user experience for everyone, applying relevant accessibility standards to ensure our site can be used by the widest possible audience, regardless of their abilities."
- },
- "compliance": {
- "title": "Regulatory Framework and Compliance Status",
- "p1": "This site has been developed to comply with the {guidelines} of the World Wide Web Consortium (W3C), aiming for a {aa} conformance level.",
- "guidelines": "Web Content Accessibility Guidelines (WCAG 2.1)",
- "aa": "Double-A (AA)",
- "wcag_alt": "W3C WAI-AA WCAG 2.1 Conformance site (opens in a new window)"
- },
- "implementation": {
- "title": "Implementation Measures",
- "p1": "In addition to following the regulatory framework, we have taken the following measures to ensure the accessibility of this site:",
- "li1": "The page semantics have been built using standard HTML5 and ARIA roles where necessary.",
- "li2": "Text sizes are relative, allowing the user to adjust their size from the browser.",
- "li3": "The design is responsive and allows for magnification (zoom) up to 250% without loss of content or functionality, exceeding the 200% minimum required by WCAG 2.1.",
- "li4": "The color palette meets Level AA contrast ratios in its standard themes.",
- "li5": "Keyboard navigation is logical and predictable.",
- "li6": "Animations and transitions are reduced or eliminated for users who have requested reduced motion in their operating system or browser preferences.",
- "li7": "The site employs progressive enhancement, ensuring essential content remains accessible without JavaScript, although some personalization features may require it."
+ "welcome": "We want {app} to be usable by as many people as possible.",
+ "approach": {
+ "title": "Our approach",
+ "p1": "We try to follow the Web Content Accessibility Guidelines (WCAG) 2.2 and use them as a reference when building features. We don't claim full conformance with any level of WCAG — accessibility is a continual process and there is always more work to do.",
+ "p2": "This site is an {about}. Accessibility improvements are made incrementally as part of our regular development.",
+ "about_link": "open-source, community-driven project"
+ },
+ "measures": {
+ "title": "What we do",
+ "p1": "Some of the things we aim to do across the site:",
+ "li1": "Use semantic HTML and ARIA attributes where appropriate.",
+ "li2": "Use relative text sizes so you can adjust them in your browser.",
+ "li3": "Support keyboard navigation throughout the interface.",
+ "li4": "Respect the prefers-reduced-motion and prefers-color-scheme media queries.",
+ "li5": "Design with sufficient color contrast in mind.",
+ "li6": "Ensure essential content is available without JavaScript, though some interactive features require it."
+ },
+ "limitations": {
+ "title": "Known limitations",
+ "p1": "Some parts of the site — particularly third-party content like package READMEs — may not meet accessibility standards. We are working to improve these areas over time."
},
"contact": {
- "title": "Contact and Feedback",
- "p1": "Accessibility is an ongoing effort. If you encounter any barriers or have any suggestions to improve the accessibility of {app}, please do not hesitate to contact us by opening an issue on our {link}.",
+ "title": "Feedback",
+ "p1": "If you encounter an accessibility barrier on {app}, please let us know by opening an issue on our {link}. We take these reports seriously and will do our best to address them.",
"link": "GitHub repository"
}
}
diff --git a/lunaria/files/es-419.json b/lunaria/files/es-419.json
index dddac204b..9b53cc8c2 100644
--- a/lunaria/files/es-419.json
+++ b/lunaria/files/es-419.json
@@ -1018,37 +1018,5 @@
"title": "Cambios en esta política",
"p1": "Podemos actualizar esta política de privacidad ocasionalmente. Cualquier cambio se publicará en esta página con una fecha de revisión actualizada."
}
- },
- "a11y": {
- "title": "declaración de accesibilidad",
- "footer_title": "accesibilidad",
- "welcome": "Nos comprometemos a hacer que el sitio {app} sea accesible para todos.",
- "commitment": {
- "title": "Compromiso con la Accesibilidad",
- "p1": "Trabajamos continuamente para mejorar la experiencia del usuario para todos, aplicando los estándares de accesibilidad pertinentes para garantizar que nuestro portal pueda ser utilizado por la audiencia más amplia posible, independientemente de sus habilidades."
- },
- "compliance": {
- "title": "Marco Normativo y Estado de Cumplimiento",
- "p1": "Este sitio web ha sido desarrollado para cumplir con las {guidelines} del World Wide Web Consortium (W3C), con el objetivo de alcanzar un nivel de conformidad {aa}.",
- "guidelines": "Pautas de Accesibilidad para el Contenido Web (WCAG 2.1)",
- "aa": "Doble-A (AA)",
- "wcag_alt": "Sitio web de Conformidad W3C WAI-AA WCAG 2.1 (se abre en una nueva ventana)"
- },
- "implementation": {
- "title": "Medidas de Implementación",
- "p1": "Además de seguir el marco normativo, hemos tomado las siguientes medidas para garantizar la accesibilidad de este sitio web:",
- "li1": "La semántica de la página se ha construido utilizando HTML5 estándar y roles ARIA donde es necesario.",
- "li2": "Los tamaños de texto son relativos, permitiendo al usuario ajustar su tamaño desde el navegador.",
- "li3": "El diseño es responsivo y permite una ampliación (zoom) de hasta el 250% sin pérdida de contenido o funcionalidad, superando el mínimo del 200% requerido por WCAG 2.1.",
- "li4": "La paleta de colores cumple con los ratios de contraste de Nivel AA en sus temas estándar.",
- "li5": "La navegación por teclado es lógica y predecible.",
- "li6": "Las animaciones y transiciones se reducen o eliminan para los usuarios que han solicitado movimiento reducido en las preferencias de su sistema operativo o del navegador.",
- "li7": "El sitio web emplea mejora progresiva, asegurando que el contenido esencial permanezca accesible sin JavaScript, aunque algunas funciones de personalización pueden requerirlo."
- },
- "contact": {
- "title": "Contacto y Retroalimentación",
- "p1": "La accesibilidad es un esfuerzo continuo. Si encuentras alguna barrera o tienes alguna sugerencia para mejorar la accesibilidad de {app}, por favor no dudes en contactarnos abriendo un problema (issue) en nuestro {link}.",
- "link": "repositorio de GitHub"
- }
}
}
diff --git a/lunaria/files/es-ES.json b/lunaria/files/es-ES.json
index 23b0fb554..2618496d4 100644
--- a/lunaria/files/es-ES.json
+++ b/lunaria/files/es-ES.json
@@ -1018,37 +1018,5 @@
"title": "Cambios en esta política",
"p1": "Podemos actualizar esta política de privacidad ocasionalmente. Cualquier cambio se publicará en esta página con una fecha de revisión actualizada."
}
- },
- "a11y": {
- "title": "declaración de accesibilidad",
- "footer_title": "accesibilidad",
- "welcome": "Nos comprometemos a hacer que el sitio {app} sea accesible para todos.",
- "commitment": {
- "title": "Compromiso con la Accesibilidad",
- "p1": "Trabajamos continuamente para mejorar la experiencia de usuario para todos, aplicando los estándares de accesibilidad pertinentes para garantizar que nuestro sitio web pueda ser utilizado por la audiencia más amplia posible, independientemente de sus capacidades."
- },
- "compliance": {
- "title": "Marco Normativo y Estado de Cumplimiento",
- "p1": "Este sitio web ha sido desarrollado para cumplir con las {guidelines} del World Wide Web Consortium (W3C), con el objetivo de alcanzar un nivel de conformidad {aa}.",
- "guidelines": "Pautas de Accesibilidad para el Contenido Web (WCAG 2.1)",
- "aa": "Doble-A (AA)",
- "wcag_alt": "Sitio web de Conformidad W3C WAI-AA WCAG 2.1 (se abre en una nueva ventana)"
- },
- "implementation": {
- "title": "Medidas de Implementación",
- "p1": "Además de seguir el marco normativo, hemos tomado las siguientes medidas para garantizar la accesibilidad de este sitio web:",
- "li1": "La semántica de la página se ha construido utilizando HTML5 estándar y roles ARIA donde es necesario.",
- "li2": "Los tamaños de texto son relativos, permitiendo al usuario ajustar su tamaño desde el navegador.",
- "li3": "El diseño es responsivo y permite una ampliación (zoom) de hasta el 250% sin pérdida de contenido o funcionalidad, superando el mínimo del 200% requerido por WCAG 2.1.",
- "li4": "La paleta de colores cumple con los ratios de contraste de Nivel AA en sus temas estándar.",
- "li5": "La navegación por teclado es lógica y predecible.",
- "li6": "Las animaciones y transiciones se reducen o eliminan para los usuarios que han solicitado movimiento reducido en las preferencias de su sistema operativo o del navegador.",
- "li7": "El sitio web emplea mejora progresiva, asegurando que el contenido esencial permanezca accesible sin JavaScript, aunque algunas funciones de personalización pueden requerirlo."
- },
- "contact": {
- "title": "Contacto y Comentarios",
- "p1": "La accesibilidad es un esfuerzo continuo. Si encuentras alguna barrera o tienes alguna sugerencia para mejorar la accesibilidad de {app}, no dudes en contactarnos abriendo un problema (issue) en nuestro {link}.",
- "link": "repositorio de GitHub"
- }
}
}
diff --git a/public/wcag2.1AA.svg b/public/wcag2.1AA.svg
deleted file mode 100644
index 167e4d50b..000000000
--- a/public/wcag2.1AA.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
From 3e7e3a293fb1cc9b1bbb30f0437004c179839743 Mon Sep 17 00:00:00 2001
From: Daniel Roe
Date: Tue, 10 Feb 2026 16:37:18 +0000
Subject: [PATCH 09/10] chore: remove title from link
---
app/components/AppFooter.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/components/AppFooter.vue b/app/components/AppFooter.vue
index 85e1e814d..b7e745377 100644
--- a/app/components/AppFooter.vue
+++ b/app/components/AppFooter.vue
@@ -23,7 +23,7 @@ const showModal = () => modalRef.value?.showModal?.()
{{ $t('privacy_policy.title') }}
-
+
{{ $t('a11y.footer_title') }}