Ir al contenido
Diseño web en Gijón
  • Quiénes somos
  • Soluciones
  • Portafolios
  • Kit Digital
  • Quiénes somos
  • Soluciones
  • Portafolios
  • Kit Digital
Contacto
Inicio  /  Blog  /  El caso del recetario automatizado. WordPress con IA. Los 8 errores que obligaron a rediseñar el sistema

El caso del recetario automatizado. WordPress con IA. Los 8 errores que obligaron a rediseñar el sistema

  • Elaborado por la redacción XF
  • 15 min de lectura
Índice de contenidos

Parecía bastante sencillo.

Teníamos un recetario en WordPress con contenidos creados en distintos momentos, estructuras diferentes y bastante trabajo pendiente para normalizarlo. La idea inicial tampoco parecía especialmente extraña. Bastaba con utilizar un asistente de inteligencia artificial que interpretase cada receta, ordenase la información y generase un fichero que WordPress pudiera importar.

Entraba un documento, la IA lo procesaba y WordPress recibía el resultado.

Ese era, más o menos, el proyecto.

Hasta que dejó de serlo.

Durante las pruebas empezaron a aparecer pequeños problemas. Después llegaron otros bastante mayores. Una receta apareció sin ingredientes. Una actualización modificó un dato SEO que debía permanecer intacto. Un mecanismo pensado para proteger las recetas acabó bloqueando una publicación que ni siquiera era una receta. Y cuando conseguimos ordenar perfectamente la información descubrimos algo aún más incómodo. La de que en algunos casos habíamos empeorado el contenido.

Cada fallo nos obligó a cambiar una pieza.

Cuando terminamos, aquel «importador de recetas» casi había desaparecido. En su lugar teníamos un sistema en el que la IA proponía, un contrato delimitaba lo permitido, WordPress volvía a comprobarlo y una persona seguía tomando las decisiones que no tenía sentido automatizar.

Ahí estaba lo interesante.

No en conseguir que la IA hiciera más, sino en aprender a impedir que hiciera demasiado.

Todo empezó con un importador que dejó de ser un importador

Partíamos de un recetario real, con recetas antiguas y nuevas, metacampos propios, contenido construido con Elementor, información SEO gestionada con Yoast y datos estructurados específicos para las recetas.

Queríamos normalizar ese material y facilitar también la creación de nuevas publicaciones.

La primera arquitectura parecía suficiente. El asistente recibía una fuente, identificaba los datos, preparaba un fichero estructurado y un plugin propio los aplicaba en WordPress.

Pero las primeras pruebas fueron ampliando el proyecto.

Ya no bastaba con importar.

También había que previsualizar, validar, actualizar sin destruir información, crear entradas nuevas, conservar el SEO, manejar metacampos, poder restaurar, registrar operaciones y distinguir una receta de una entrada normal.

Hasta el nombre dejó de describir bien lo que estábamos construyendo.

El «Importador de recetas» acabó evolucionando hasta convertirse en CLZ Recetas.

Puede parecer un simple cambio de alcance, pero ahí apareció el primer aprendizaje importante: cuando introduces IA en un proceso real, el trabajo difícil suele empezar después de obtener una respuesta del modelo.

Generar algo es fácil. Otra cosa es decidir si ese resultado tiene permiso para modificar producción.

El proyecto empezaba a parecerse menos a una simple integración con un modelo y más a una capa de control alrededor de él. Es lo que suele describirse como un harness. Nombre que reciben el conjunto de software, reglas y mecanismos que determina cómo puede pasar una propuesta de la IA desde el modelo hasta una acción real.

Entonces llegó una receta sin ingredientes

Una de las pruebas resultó especialmente útil.

El asistente generó el fichero de una receta y faltaban los ingredientes.

No era una tilde ni una frase mejorable.

Faltaban los ingredientes.

Es un buen ejemplo de uno de los problemas más incómodos de los modelos de lenguaje, como una respuesta puede parecer perfectamente razonable y aun así estar incompleta.

El propio asistente tenía instrucciones para revisar su trabajo, pero no bastó.

Por suerte, el siguiente componente del sistema no necesitaba «entender» si la receta parecía convincente. Solo tenía que comprobar una regla mucho más sencilla, que determinados campos eran obligatorios.

El fichero fue rechazado.

Lo generamos de nuevo y la siguiente versión sí pudo continuar.

Una receta incompleta es rechazada por la validación antes de continuar el proceso
Una de las primeras pruebas llegó sin ingredientes. El formato podía parecer correcto, pero una segunda capa de validación evitó que siguiera adelante.

Aquel error cambió el proyecto.

Hasta entonces veíamos el formato estructurado como una forma cómoda de transportar información. A partir de ese momento empezó a funcionar también como una frontera.

La IA podía proponer lo que quisiera dentro de ella. El plugin no tenía por qué fiarse.

Quien genera una respuesta no tiene por qué ser también quien decida que esa respuesta es válida para ejecutarse.

Aquella separación funcionaba también como una frontera de confianza. La salida del modelo dejaba de tratarse como una instrucción válida por defecto y pasaba a considerarse un dato no confiable que debía superar comprobaciones deterministas.

Ese principio forma parte del hardening de una integración con IA. Evitando intentar que el modelo sea infalible, sino diseñar el sistema suponiendo que puede producir una salida inesperada y limitar las consecuencias cuando ocurra.

El JSON Schema no podía comprobar si una receta era buena ni decidir si una clasificación culinaria tenía sentido.

Pero sí podía impedir que una receta sin ingredientes siguiera adelante.

Y con eso ya ganábamos mucho.

Construimos una barrera. Y la barrera empezó a molestar

El siguiente problema tuvo algo de irónico.

Habíamos añadido controles para impedir que una receta incorrecta llegase a producción. La lógica funcionaba.

Quizá demasiado.

En una de las pruebas, una publicación normal de WordPress acabó tratada como si fuese una receta. El mecanismo de protección se activó donde no correspondía y bloqueó una operación legítima.

Habíamos cambiado un riesgo por otro.

Primero nos preocupaba que la automatización hiciera cosas que no debía. Ahora el sistema encargado de detenerla también actuaba donde no le correspondía.

La solución no consistió en relajar todas las comprobaciones, sino en ajustar mejor la condición que determinaba cuándo aquellas reglas tenían autoridad.

Ese incidente nos dejó otra enseñanza.

Un guardrail mal delimitado también puede provocar fallos.

Aquí también aprendimos a no utilizar guardrail y hardening como si fueran lo mismo. Un guardrail es un control concreto que permite, bloquea o condiciona una acción. El hardening es más amplio, porque consiste en diseñar el conjunto para reducir las oportunidades de que un error del modelo termine convirtiéndose en un error sobre el sistema real.

Por eso añadir más guardrailes no equivalía necesariamente a endurecer mejor la solución.

Más adelante nos ocurrió algo parecido con las copias de seguridad.

En un momento del desarrollo, el flujo comprobaba que se había descargado una copia y además pedía al usuario marcar una casilla para confirmar que la había descargado.

Dos controles parecían más seguros que uno.

En realidad, el segundo no aportaba ninguna protección nueva.

Solo añadía trabajo innecesario.

Lo eliminamos.

Empezábamos a entender que una automatización fiable no se diseña poniendo barreras por todas partes, sino colocando la barrera adecuada exactamente donde hacía falta.

Conseguimos ordenar las recetas. Y entonces descubrimos que las habíamos empeorado

Este fue probablemente el momento más interesante desde el punto de vista editorial.

Las recetas originales eran irregulares. Algunas tenían introducciones largas y otras estaban organizadas en fases. Había explicaciones sobre temperaturas, tiempos, textura, reposos, criterios visuales y pequeños detalles prácticos.

La IA podía convertir todo aquello en una estructura mucho más limpia.

Y lo hizo.

Demasiado limpia.

En algunas transformaciones las introducciones perdieron una parte importante de su contenido. Los pasos de elaboración que antes explicaban una fase completa acabaron convertidos en instrucciones telegráficas.

Técnicamente habíamos avanzado, pero editorialmente habíamos retrocedido.

Flujo final con fuente, inteligencia artificial, contrato, validación, revisión humana, WordPress y comprobación posterior
La arquitectura final separó interpretación, validación y ejecución. Una salida podía detenerse antes de llegar a producción si incumplía las reglas o necesitaba una decisión humana.

Esta vez el problema no era la ausencia de un campo obligatorio. El esquema podía ser perfectamente válido y el resultado seguir siendo peor que el original.

Aquello nos obligó a separar dos conceptos que hasta entonces parecían casi equivalentes.

Estructurar no es resumir.

Una automatización puede ordenar la información sin tener permiso para empobrecerla.

El contrato volvió a cambiar.

Las instrucciones dejaron de plantearse únicamente como cadenas breves y pasaron a representar dos elementos distintos: un nombre para la fase y el texto completo que explicaba qué había que hacer.

Ese pequeño cambio permitió conservar algo esencial.

La máquina seguía obteniendo una estructura limpia y el lector recuperaba la explicación que daba valor a esa estructura.

Además, resolvía otra necesidad. La misma información podía alimentar el contenido visible de la receta y los pasos de sus datos estructurados sin mantener dos relatos distintos de lo que había que hacer.

No necesitábamos «más IA».

Necesitábamos un modelo de datos que representase mejor la realidad.

Un emoji nos enseñó quién tenía la última palabra

Después apareció un problema mucho más pequeño.

Precisamente por eso resultó tan revelador.

En una actualización, el asistente reconstruyó un título SEO y añadió un emoji que no debía estar allí.

No parecía grave y podía eliminarse en segundos.

Pero planteaba una pregunta bastante más importante.

¿Por qué estaba reconstruyendo ese dato?

WordPress ya tenía un título SEO válido. La automatización contaba además con el slug, el contenido visible, los datos estructurados y diferentes referencias internas. Todas eran señales relacionadas con la misma página, pero no todas tenían la misma autoridad.

Decirle al asistente «usa el DOM» no era suficiente.

Un DOM contiene muchas versiones parciales de la realidad.

A partir de ese fallo empezamos a definir qué fuente mandaba para cada campo.

Diagrama de precedencia que relaciona cada tipo de dato de WordPress con la fuente que tiene autoridad para definirlo
«Usa el DOM» era demasiado ambiguo. La solución consistió en decidir qué fuente tenía autoridad para cada tipo de dato y evitar reconstruir información válida a partir de señales secundarias.

En una actualización, el SEO existente podía tener prioridad sobre una inferencia construida desde el slug. Los datos de receta ya estructurados y válidos debían conservarse. La URL comercial tenía que proceder del catálogo canónico. Una decisión confirmada por el usuario podía prevalecer sobre una estimación anterior.

El cambio parecía técnico, pero contenía una idea aplicable a muchos otros casos.

Cuando una automatización maneja varias fuentes, importa menos preguntarse «¿qué información tengo?» que saber «cuál de estas fuentes tiene autoridad para decidir este dato».

Después apareció otra consecuencia.

Si una receta ya estaba bien, volver a procesarla no debería cambiarla solo porque el modelo encontrase otra forma de escribirla.

Introdujimos entonces la idempotencia como criterio editorial.

Una segunda ejecución debía corregir lo que estuviera mal, no reinventar por motivos estéticos lo que ya funcionaba.

También tuvimos que enseñar al sistema a decir «no lo sé»

Hubo otra inferencia que parecía completamente razonable.

Una receta utilizaba carne zamorana.

El sistema acabó clasificándola como cocina zamorana.

La relación tenía una lógica superficial.

Pero como criterio era falsa.

El origen de un ingrediente no determina automáticamente la tradición culinaria de una receta.

Este tipo de error tiene una dificultad especial porque ninguna validación de tipos puede detectarlo. El campo podía existir, contener uno de los valores permitidos y superar perfectamente un JSON Schema.

El problema estaba en el significado.

Por eso empezamos a distinguir de dónde procedía cada dato.

Un valor podía haberse extraído literalmente de una fuente, haberse generado, inferido, recomendado o decidido manualmente.

La trazabilidad no hacía correcta una inferencia.

Pero sí evitaba que todas las afirmaciones pareciesen tener el mismo grado de certeza.

Eso nos permitió definir mejor cuándo tenía que intervenir una persona.

En sistemas de IA este patrón suele denominarse human-in-the-loop. Que es mantener una intervención humana dentro del flujo cuando una acción o una decisión supera el nivel de riesgo o incertidumbre que queremos delegar.

Pero introducir una persona en cada paso tampoco es una buena arquitectura.

La cuestión era decidir qué podía resolver el software de forma determinista y qué necesitaba realmente criterio humano.

No queríamos aprobar manualmente cada campo porque habríamos convertido la automatización en una burocracia.

Queríamos intervenir solo cuando había una decisión de verdad.

  • Una cantidad contradictoria
  • Un tiempo que dos fuentes resolvían de forma distinta
  • Una clasificación que exigía interpretar contexto
  • Un posible problema de seguridad alimentaria
  • Un dato necesario que no podía inferirse de forma suficientemente fiable

El objetivo dejó de ser «eliminar al humano del proceso».

Pasó a ser algo bastante más útil:

No hacerle perder tiempo con aquello que una máquina sí puede comprobar y reservar su criterio para lo que todavía lo necesita.

Cuando acabamos, habíamos construido casi lo contrario de la idea inicial

Al cerrar la fase de desarrollo y QA, el sistema estaba formado por CLZ Recetas 1.3.0, un contrato de datos 1.2.0 y un asistente especializado cuya configuración y documentación también habían evolucionado durante las pruebas.

Pero esa descripción técnica deja fuera lo más importante.

Cada componente existía porque antes algo había fallado.

Lo que ocurrió Lo que cambió
Un fichero llegó sin ingredientes. La validación externa dejó de ser opcional.
Un guardrail bloqueó una publicación que no era una receta. Se delimitó mejor cuándo tenía autoridad el sistema.
Un dato SEO cambió desde una señal secundaria. Se definió la precedencia de fuentes por campo.
Una segunda ejecución podía modificar contenido ya válido. La idempotencia pasó a ser un requisito.
La normalización reducía contenido útil. El modelo de datos evolucionó para conservar el nombre y la explicación de cada fase.
Una inferencia plausible terminó tratándose como un hecho. Se reforzó la trazabilidad sobre la procedencia de los datos.
La interfaz mostraba conceptos demasiado técnicos. La herramienta empezó a hablar de tareas del editor en lugar de detalles de implementación.
Una confirmación duplicaba una protección existente. Se eliminó un paso innecesario que no añadía seguridad real.
La arquitectura final no salió de una lista teórica de buenas prácticas. Cada cambio respondió a un problema observado durante el desarrollo y el QA.
Evolución de una receta desde un contenido rico e irregular hasta una versión demasiado resumida y una estructura final que conserva el detalle
La primera normalización hizo el contenido más uniforme, pero también eliminó información útil. El contrato tuvo que evolucionar para conservar tanto la estructura como las explicaciones.

Visto así, el desarrollo no fue una carrera por conceder más autonomía a la inteligencia artificial.

Fue una sucesión de decisiones para definir mejor sus límites.

Probablemente esa sea la enseñanza más valiosa que nos dejó el proyecto.

La automatización madura cuando también sabe detenerse

Cuando se trabaja con IA es fácil caer en una tentación.

Si ya consigue hacer ocho pasos, ¿por qué no dejarle hacer el noveno?

Después el décimo.

Y después publicar.

Nuestro proyecto avanzó justo en la dirección contraria.

Cuanto mejor entendíamos los posibles fallos, más clara quedaba la separación entre interpretar, validar y ejecutar.

Con la perspectiva que tenemos ahora, buena parte de aquella evolución puede interpretarse como un trabajo de harness engineering y hardening.

El modelo era solo una pieza. Alrededor fueron apareciendo el contrato, las validaciones, las reglas de precedencia, las comprobaciones del plugin, los registros y los puntos de intervención humana. Cada elemento reducía la distancia entre «la IA ha propuesto esto» y «el sistema puede ejecutar esto con unas condiciones conocidas».

Lo relevante no era hacer más inteligente al modelo. Era diseñar mejor todo lo que existía entre el modelo y WordPress.

Terminamos entendiendo mucho mejor qué problema estábamos resolviendo.

Composición con la interfaz del asistente CLZ Recetas y la pantalla de revisión del plugin en WordPress durante la actualización de una receta mediante inteligencia artificial.
Vista conjunta del resultado real del proyecto. El asistente prepara la propuesta y el plugin la revisa antes de aplicar los cambios sobre WordPress.

Al principio queríamos que una IA transformase recetas.

Al final habíamos diseñado un proceso en el que cada participante tenía una responsabilidad distinta, donde el modelo interpretaba y proponía, el software comprobaba aquello que podía verificar de forma determinista y una persona seguía tomando las decisiones que necesitaban contexto.

El sistema se volvió más controlable cuando dejamos de preguntarnos cuánto podíamos automatizar.

Empezamos a preguntarnos qué no debíamos automatizar sin una segunda barrera.

La misma pregunta sirve mucho más allá de un recetario.

  • Fichas de producto
  • Migraciones
  • Metadatos
  • Documentación
  • Catálogos
  • Procesos internos

Antes de conectar una IA con cualquiera de ellos conviene hacerse una pregunta incómoda:

Si mañana genera algo convincente, incorrecto y completamente inesperado, ¿qué existe entre esa respuesta y producción?

Si la respuesta es «nada», probablemente el siguiente paso no sea escribir un prompt mejor.

Puede que sea diseñar el sistema.

Si tienes un proceso repetitivo en WordPress y estás valorando automatizarlo, las soluciones de inteligencia artificial aplicada que aplicamos parten de esa decisión, la de entender primero qué merece automatización, qué datos y reglas gobiernan el proceso y dónde conviene mantener la supervisión.

¿Hablamos sobre tus ideas?
Otros artículos recomendables para revisar
Beneficios de tener un sitio web para pequeñas empresas en Asturias
  • Redacción XF

Si tienes una pequeña empresa en Asturias y aún no tienes un sitio web, ¡estás perdiendo una gran oportunidad! En este artículo, vamos a explorar…

Link Building, enlaces de éxito para contenidos y negocios de Internet
  • Redacción XF

Imagina que tienes un negocio de zumos naturales. Para que tu negocio crezca, decides contratar a algunas personas que colaboren con el objetivo de hacerle…

F-commerce y los sistemas de lista para tiendas sociales online
  • Redacción XF

Hace algún tiempo ya se habló en este blog sobre el desarrollo del concepto f-commerce y del despunte de la venta social en Internet. Ahora…

¿Facebook y Twitter son herramientas de trabajo en Internet?
  • Redacción XF

Desde ya te decimos que lo son. Te ayudan a generar tu nicho de mercado, mejorar tu divulgación publicitaria y todo de forma social. Busca…

Web corporativa: Las mejores herramientas para detectar el contenido duplicado
  • Redacción XF

Aumenta tu tráfico web y ventas, mejorando el contenido de calidad de tu web corporativa ¿cómo? a través de estas herramientas para detectar contenido duplicado….

Mundo Cloud Computing: pasos de seguridad que no te pueden faltar
  • Redacción XF

Sabemos que el cloud computing puede resultar un excelente servicio web para nuestro negocio online, con él podemos almacenar todos nuestros datos y los de…

Conoce todos los artículos
Diseño web en Asturias
  • se.yrotcafnonex@ofni
  • 984 263 007
  • Gijón (Asturias)

Síguenos

Linkedin-in

Soluciones

  • Diseño de páginas web en Asturias
  • Diseño de tiendas online en Asturias
  • Posicionamiento web en Asturias
  • Inteligencia Artificial en Asturias

Accesos

  • Blog

SOPORTE

  • Windows
  • Mac
  • Android
  • Aviso legal
  • Política de privacidad
  • Política de cookies
  • Accesibilidad
  • Aviso legal
  • Política de privacidad
  • Política de cookies
  • Accesibilidad
Diseño web en Gijón
Diseño web en Gijón
  • se.yrotcafnonex@ofni
  • 984 263 007
  • Gijón (Asturias)

Síguenos

Linkedin-in X-twitter
  • Quiénes somos
  • Soluciones
  • Desarrollo web con WordPress
  • Creación de tiendas virtuales con WooCommerce
  • Marketing SEO (On-page y Off-page)
  • Ciberseguridad aplicada a WordPress
  • Inteligencia Artificial aplicada
  • Desarrollo ad hoc para proyectos personalizados
  • Outsourcing tecnológico (agencias y consultoras)
  • Acompañamiento y formación contínua
  • Portafolios
  • Kit Digital
  • Contacto
Accesibilidad
Modos de accesibilidad
Modo seguro de epilepsia
Humedece el color y elimina los parpadeos.
Este modo permite a las personas con epilepsia utilizar el sitio web de forma segura al eliminar el riesgo de convulsiones que resultan de las animaciones intermitentes o parpadeantes y las combinaciones de colores arriesgadas.
Modo para personas con discapacidad visual
Mejora las imágenes del sitio web.
Este modo ajusta el sitio web para la comodidad de los usuarios con discapacidades visuales, como visión degradada, visión de túnel, cataratas, glaucoma y otras.
Modo de discapacidad cognitiva
Ayuda a concentrarse en contenido específico.
Este modo brinda diferentes opciones de asistencia para ayudar a los usuarios con deficiencias cognitivas, como dislexia, autismo, CVA y otras, a concentrarse más fácilmente en los elementos esenciales del sitio web.
Modo compatible con TDAH
Reduce las distracciones y mejora el enfoque.
Este modo ayuda a los usuarios con TDAH y trastornos del desarrollo neurológico a leer, navegar y concentrarse en los elementos principales del sitio web con mayor facilidad, al tiempo que reduce significativamente las distracciones.
Modo de ceguera
Permite usar el sitio con su lector de pantalla
Este modo configura el sitio web para que sea compatible con lectores de pantalla como JAWS, NVDA, VoiceOver y TalkBack. Un lector de pantalla es un software para usuarios ciegos que se instala en una computadora y un teléfono inteligente, y los sitios web deben ser compatibles con él.
Diccionario en línea
    Experiencia legible
    Escalado de contenido
    Por defecto
    Lupa de texto
    Fuente legible
    Apto para dislexia
    Destacar títulos
    Destacar enlaces
    Tamaño de fuente
    Por defecto
    Altura de la línea
    Por defecto
    Espaciado de letras
    Por defecto
    Alineado a la izquierda
    Centro alineado
    Alineado a la derecha
    Experiencia visualmente agradable
    Contraste oscuro
    Contraste de luz
    Monocromo
    Alto contraste
    Alta saturación
    Baja saturación
    Ajustar colores de texto
    Ajustar los colores del título
    Ajustar los colores de fondo
    Orientación Fácil
    Silenciar sonidos
    Ocultar imágenes
    Ocultar emoji
    Guía de lectura
    Detener animaciones
    Máscara de lectura
    Resaltar pasar el cursor
    Resalte el enfoque
    Gran cursor oscuro
    Cursor de luz grande
    Lectura cognitiva
    Teclado virtual
    Teclas de navegación
    Navegación por voz

    Xenon Factory

    Accessibility Statement

    • xenonfactory.es
    • 26 agosto, 2026

    Compliance status

    We firmly believe that the internet should be available and accessible to anyone, and are committed to providing a website that is accessible to the widest possible audience, regardless of circumstance and ability.

    To fulfill this, we aim to adhere as strictly as possible to the World Wide Web Consortium’s (W3C) Web Content Accessibility Guidelines 2.1 (WCAG 2.1) at the AA level. These guidelines explain how to make web content accessible to people with a wide array of disabilities. Complying with those guidelines helps us ensure that the website is accessible to all people: blind people, people with motor impairments, visual impairment, cognitive disabilities, and more.

    This website utilizes various technologies that are meant to make it as accessible as possible at all times. We utilize an accessibility interface that allows persons with specific disabilities to adjust the website’s UI (user interface) and design it to their personal needs.

    Additionally, the website utilizes an AI-based application that runs in the background and optimizes its accessibility level constantly. This application remediates the website’s HTML, adapts Its functionality and behavior for screen-readers used by the blind users, and for keyboard functions used by individuals with motor impairments.

    If you’ve found a malfunction or have ideas for improvement, we’ll be happy to hear from you. You can reach out to the website’s operators by using the following email

    Screen-reader and keyboard navigation

    Our website implements the ARIA attributes (Accessible Rich Internet Applications) technique, alongside various different behavioral changes, to ensure blind users visiting with screen-readers are able to read, comprehend, and enjoy the website’s functions. As soon as a user with a screen-reader enters your site, they immediately receive a prompt to enter the Screen-Reader Profile so they can browse and operate your site effectively. Here’s how our website covers some of the most important screen-reader requirements, alongside console screenshots of code examples:

    1. Screen-reader optimization: we run a background process that learns the website’s components from top to bottom, to ensure ongoing compliance even when updating the website. In this process, we provide screen-readers with meaningful data using the ARIA set of attributes. For example, we provide accurate form labels; descriptions for actionable icons (social media icons, search icons, cart icons, etc.); validation guidance for form inputs; element roles such as buttons, menus, modal dialogues (popups), and others. Additionally, the background process scans all the website’s images and provides an accurate and meaningful image-object-recognition-based description as an ALT (alternate text) tag for images that are not described. It will also extract texts that are embedded within the image, using an OCR (optical character recognition) technology. To turn on screen-reader adjustments at any time, users need only to press the Alt+1 keyboard combination. Screen-reader users also get automatic announcements to turn the Screen-reader mode on as soon as they enter the website.

      These adjustments are compatible with all popular screen readers, including JAWS and NVDA.

    2. Keyboard navigation optimization: The background process also adjusts the website’s HTML, and adds various behaviors using JavaScript code to make the website operable by the keyboard. This includes the ability to navigate the website using the Tab and Shift+Tab keys, operate dropdowns with the arrow keys, close them with Esc, trigger buttons and links using the Enter key, navigate between radio and checkbox elements using the arrow keys, and fill them in with the Spacebar or Enter key.Additionally, keyboard users will find quick-navigation and content-skip menus, available at any time by clicking Alt+1, or as the first elements of the site while navigating with the keyboard. The background process also handles triggered popups by moving the keyboard focus towards them as soon as they appear, and not allow the focus drift outside it.

      Users can also use shortcuts such as “M” (menus), “H” (headings), “F” (forms), “B” (buttons), and “G” (graphics) to jump to specific elements.

    Disability profiles supported in our website

    • Epilepsy Safe Mode: this profile enables people with epilepsy to use the website safely by eliminating the risk of seizures that result from flashing or blinking animations and risky color combinations.
    • Visually Impaired Mode: this mode adjusts the website for the convenience of users with visual impairments such as Degrading Eyesight, Tunnel Vision, Cataract, Glaucoma, and others.
    • Cognitive Disability Mode: this mode provides different assistive options to help users with cognitive impairments such as Dyslexia, Autism, CVA, and others, to focus on the essential elements of the website more easily.
    • ADHD Friendly Mode: this mode helps users with ADHD and Neurodevelopmental disorders to read, browse, and focus on the main website elements more easily while significantly reducing distractions.
    • Blindness Mode: this mode configures the website to be compatible with screen-readers such as JAWS, NVDA, VoiceOver, and TalkBack. A screen-reader is software for blind users that is installed on a computer and smartphone, and websites must be compatible with it.
    • Keyboard Navigation Profile (Motor-Impaired): this profile enables motor-impaired persons to operate the website using the keyboard Tab, Shift+Tab, and the Enter keys. Users can also use shortcuts such as “M” (menus), “H” (headings), “F” (forms), “B” (buttons), and “G” (graphics) to jump to specific elements.

    Additional UI, design, and readability adjustments

    1. Font adjustments – users, can increase and decrease its size, change its family (type), adjust the spacing, alignment, line height, and more.
    2. Color adjustments – users can select various color contrast profiles such as light, dark, inverted, and monochrome. Additionally, users can swap color schemes of titles, texts, and backgrounds, with over seven different coloring options.
    3. Animations – person with epilepsy can stop all running animations with the click of a button. Animations controlled by the interface include videos, GIFs, and CSS flashing transitions.
    4. Content highlighting – users can choose to emphasize important elements such as links and titles. They can also choose to highlight focused or hovered elements only.
    5. Audio muting – users with hearing devices may experience headaches or other issues due to automatic audio playing. This option lets users mute the entire website instantly.
    6. Cognitive disorders – we utilize a search engine that is linked to Wikipedia and Wiktionary, allowing people with cognitive disorders to decipher meanings of phrases, initials, slang, and others.
    7. Additional functions – we provide users the option to change cursor color and size, use a printing mode, enable a virtual keyboard, and many other functions.

    Browser and assistive technology compatibility

    We aim to support the widest array of browsers and assistive technologies as possible, so our users can choose the best fitting tools for them, with as few limitations as possible. Therefore, we have worked very hard to be able to support all major systems that comprise over 95% of the user market share including Google Chrome, Mozilla Firefox, Apple Safari, Opera and Microsoft Edge, JAWS and NVDA (screen readers).

    Notes, comments, and feedback

    Despite our very best efforts to allow anybody to adjust the website to their needs. There may still be pages or sections that are not fully accessible, are in the process of becoming accessible, or are lacking an adequate technological solution to make them accessible. Still, we are continually improving our accessibility, adding, updating and improving its options and features, and developing and adopting new technologies. All this is meant to reach the optimal level of accessibility, following technological advancements. For any assistance, please reach out to