From 68b022d0c55c0ab2de0987e5934902ff03c4be44 Mon Sep 17 00:00:00 2001 From: userquin Date: Fri, 6 Feb 2026 15:25:17 +0100 Subject: [PATCH 01/10] feat(i18n,ui): add accessibility statement page --- app/components/AppFooter.vue | 7 + app/pages/accessibility.vue | 153 ++++++++++++++++++ i18n/locales/en.json | 31 ++++ i18n/locales/es-419.json | 9 ++ i18n/locales/es.json | 31 ++++ lunaria/files/en-GB.json | 31 ++++ lunaria/files/en-US.json | 31 ++++ lunaria/files/es-419.json | 31 ++++ lunaria/files/es-ES.json | 31 ++++ nuxt.config.ts | 1 + public/wcag2.1AA.svg | 1 + .../middleware/canonical-redirects.global.ts | 1 + 12 files changed, 358 insertions(+) create mode 100644 app/pages/accessibility.vue create mode 100644 public/wcag2.1AA.svg diff --git a/app/components/AppFooter.vue b/app/components/AppFooter.vue index d8722a6f6..6ecb72787 100644 --- a/app/components/AppFooter.vue +++ b/app/components/AppFooter.vue @@ -24,6 +24,13 @@ const isHome = computed(() => route.name === 'index') > {{ $t('privacy_policy.title') }} + + {{ $t('a11y.footer_title') }} + +definePageMeta({ + name: 'accessibility', +}) + +useSeoMeta({ + title: () => `${$t('a11y.title')} - npmx`, + description: () => $t('a11y.welcome', { app: 'npmx' }), +}) + +defineOgImageComponent('Default', { + title: () => $t('a11y.title'), + description: () => $t('a11y.welcome', { app: 'npmx' }), +}) + +const router = useRouter() + + + 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 @@ +wcag2.1AA-blue-v \ 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.implementation.li7') }} +
  • From 8fd02005bf3a8340fddd0a138c954ca4893c0676 Mon Sep 17 00:00:00 2001 From: userquin Date: Fri, 6 Feb 2026 15:52:50 +0100 Subject: [PATCH 05/10] chore: sort pages --- server/middleware/canonical-redirects.global.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/middleware/canonical-redirects.global.ts b/server/middleware/canonical-redirects.global.ts index 8b49c6a73..a04f896b7 100644 --- a/server/middleware/canonical-redirects.global.ts +++ b/server/middleware/canonical-redirects.global.ts @@ -14,8 +14,8 @@ */ const pages = [ '/200.html', - '/accessibility', '/about', + '/accessibility', '/compare', '/org', '/package', From 233246249ae9b9283f370a1ee3205d61083505f2 Mon Sep 17 00:00:00 2001 From: userquin Date: Fri, 6 Feb 2026 15:53:13 +0100 Subject: [PATCH 06/10] chore: sort static routes rules --- nuxt.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nuxt.config.ts b/nuxt.config.ts index e28062343..434622c36 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -119,8 +119,8 @@ export default defineNuxtConfig({ // static pages '/': { prerender: true }, '/200.html': { prerender: true }, - '/accessibility': { prerender: true }, '/about': { prerender: true }, + '/accessibility': { prerender: true }, '/privacy': { prerender: true }, '/search': { isr: false, cache: false }, // never cache '/settings': { prerender: true }, From 696b944165cf6a1fb9b6c9ffc10c1c32c9a93e8b Mon Sep 17 00:00:00 2001 From: userquin Date: Fri, 6 Feb 2026 15:59:07 +0100 Subject: [PATCH 07/10] chore: include aria-hidden=true to em-dash spans --- app/pages/accessibility.vue | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/pages/accessibility.vue b/app/pages/accessibility.vue index af9a19cca..291d8ca62 100644 --- a/app/pages/accessibility.vue +++ b/app/pages/accessibility.vue @@ -96,11 +96,11 @@ const router = useRouter()

    • - + {{ $t('a11y.implementation.li1') }}
    • - + {{ $t('a11y.implementation.li2') }}
    • @@ -108,19 +108,19 @@ const router = useRouter() {{ $t('a11y.implementation.li3') }}
    • - + {{ $t('a11y.implementation.li4') }}
    • - + {{ $t('a11y.implementation.li5') }}
    • - + {{ $t('a11y.implementation.li6') }}
    • - + {{ $t('a11y.implementation.li7') }}
    From 72422b692ddbbdd366ed81e617235eff3ab8d827 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 10 Feb 2026 16:35:16 +0000 Subject: [PATCH 08/10] fix: update page in line with new elements, reword statement --- app/pages/accessibility.vue | 100 ++++++++++++++++-------------------- i18n/locales/en.json | 48 +++++++++-------- i18n/locales/es-419.json | 9 ---- i18n/locales/es.json | 32 ------------ i18n/schema.json | 90 ++++++++++++++++++++++++++++++++ lunaria/files/en-GB.json | 48 +++++++++-------- lunaria/files/en-US.json | 48 +++++++++-------- lunaria/files/es-419.json | 32 ------------ lunaria/files/es-ES.json | 32 ------------ public/wcag2.1AA.svg | 1 - 10 files changed, 203 insertions(+), 237 deletions(-) delete mode 100644 public/wcag2.1AA.svg diff --git a/app/pages/accessibility.vue b/app/pages/accessibility.vue index 291d8ca62..af2142623 100644 --- a/app/pages/accessibility.vue +++ b/app/pages/accessibility.vue @@ -14,6 +14,7 @@ defineOgImageComponent('Default', { }) const router = useRouter() +const canGoBack = useCanGoBack()