Contabilidad demo: Assistants report - October 2026

The accessibility assistant versus the chatbot

What Acceso fácil and the Asistente Inteligente solve, for whom, and where their limits are. Written with Marie Obelleiro and Claude, from the app's code and Marie's accessibility research.

1. Summary

The app has two assistants that answer from the same data in different ways. 'Acceso fácil', created to solve accessibility issues, is a router: a few buttons, one question at a time, that take anyone to the right answer or screen without navigating the app. The Asistente Inteligente (the chatbot) is a conversation: people write in their own words, Jev works out what they mean, and the app answers with its own figures.

Acceso fácil

Choose, don't type

  • Input: buttons only, in three steps.
  • Understanding: none needed, because every choice is exact.
  • Runs: inside the page, with no network calls.
  • Best for: screen-reader, keyboard and switch users, and anyone who finds the screens or typing hard.
Asistente Inteligente

Ask in your own words

  • Input: free text in Spanish or English, plus suggestion buttons.
  • Understanding: Jev (TypeSafe), with a basic keyword recogniser as a fallback.
  • Runs: the question goes to Jev through jev.php. The accounting data never leaves the page.
  • Best for: quick questions from people who know what they want but not where it is.

What they share

Both answer with the same function (window.AF.answer()), so they never give different figures. Neither one calculates its own totals or invents an answer. Both save through the same date rules as the screens, and both explain that the demo stores nothing: reloading brings back the example data.

2. Acceso fácil as a router

Linear navigation: one question at a time, step by step.

The problem it routes around

The app's screens follow a normal accounting layout: a menu, a year strip, quarter tabs, summary boxes, tables and charts. That works when you can see it all at once. With a screen reader, a magnifier or a keyboard it means tabbing through many controls before reaching the figure you want, and not knowing which page, year or quarter you are in. The research names these as the main barriers: horizontal navigation, dropdowns and hover menus, and pop-ups that trap or lose focus.

Acceso fácil doesn't try to fix every screen for every user. It offers a second, linear path to the same content.

How the route works

1 · ActionConsultar datos · Introducir datos · Consultar definiciones
2 · CategoryDatos clave · Facturación · Gastos · Impuestos
3 · OptionThe figure, form or term you need
AnswerThe answer first, then "Cambiar periodo" and related follow-ups
Ver en la appOpens the matching screen, year and quarter

Every destination is three choices away. "Volver" undoes the last step and "Empezar de nuevo" goes back to step 1, so a wrong choice costs one press. The answer is shown first, with the period after it (the inverted pyramid). By default it uses the current quarter of the active year, or the annual summary for past years.

"Ver en la app" is what makes it a router rather than a separate app. Once the user knows what they want, it takes them into the real screen, already set to the right year and quarter.

Design principles behind it

  • Less is more. One question on screen at a time. Earlier answers stay visible as a trail, so users can see where they are.
  • Small blocks read in a line. Each step is a labelled group that a screen reader reads from top to bottom, with no layout to work out. The same blocks become a bottom panel on mobile.
  • Mobile first. The research notes that many users with access needs prefer their phone because content comes gradually and touch is direct. Below 768 px the window becomes a bottom panel, and drag and resize are switched off.
  • Buttons instead of typing. The tax vocabulary is fixed, so every question has a finite set of answers. A labelled button can't be misunderstood.
  • Separate from the chat. Opening one assistant closes the other, so users never deal with two moving windows.

3. Who it serves

User groups and barriers from the research tables, checked against what the app does today.

User groupTypical barriersWhat Acceso fácil and the app doStill open
Blind and screen-reader users
JAWS, NVDA, VoiceOver
  • Tabbing through a lot before the content
  • Not knowing which page or section they're on
  • Pop-ups that trap or lose focus
  • Unlabelled controls
  • Each step is a role="group" named by its question; options use aria-pressed
  • Focus moves to the next step or to the RESPUESTA heading
  • A polite live region announces the new answer when the period changes
  • Escape closes the window and focus goes back to the launch button
  • The window's lang changes with ESP/ENG, so the voice changes too
  • In English, the Spanish terms in brackets ("VAT (IVA)") have no language tag, so they're read in an English voice
Low vision
ZoomText, browser zoom, magnifiers
  • Small text and low contrast
  • Content outside the magnified area
  • Information shown only on hover
  • The window can be resized or switched to full screen
  • Answers are short text, not charts
  • Colours pass WCAG AA (orange #CD4D08 at 4.51:1)
  • Mobile text is at least 14 px
  • Tooltips open on hover, tap and keyboard focus
  • The focus outline is yellow with a black edge
  • Option buttons are 12 px, upper case and monospaced
  • Contrast is AA, not AAA (7:1)
  • No in-app setting for text size or colours
Physical and motor
keyboard only, switch access, tremor, voice control (Dragon)
  • Movements that need precise mouse control
  • Hover menus and dropdowns
  • Small targets
  • Long tab paths
  • Only buttons: no dropdowns, hover or dragging needed
  • A short tab path in each step
  • Buttons are at least 36 px tall
  • Visible labels match the accessible names, so "click Facturación" works with voice control
  • Chart dots have a larger invisible tap area
  • On touch screens, dates use the native picker
  • 36 px is below the 44 px of WCAG AAA (2.5.5)
Dyslexia and cognitive load
memory, concentration, timing
  • Long pages and many things at once
  • Remembering where a figure is
  • Typing and spelling
  • Forms with missed fields
  • Justified or italic text
  • One question at a time, with the answer first
  • Nothing to type to look something up
  • Inline errors, with focus on the first one
  • Impossible dates corrected automatically
  • Undo for "cobrada" and for deletions
  • No time limits and no justified text
  • The chat accepts small typos
  • Upper-case monospaced labels are harder to read
  • No built-in read-aloud for long answers
Older users
  • Unfamiliar navigation
  • Fear of breaking something
  • Small targets
  • The same three steps every time
  • "Volver" and "Empezar de nuevo"
  • Being a sandbox, nothing can be broken: reloading restores everything
  • A summary before saving in the chat
  • Same as low vision: text size and target size
Autistic users
  • Clutter and distraction
  • Bright or harsh colour combinations
  • Unpredictable layouts
  • Ambiguous wording
  • One task on screen
  • Full screen hides the rest of the app
  • Plain, consistent wording
  • A calm palette and almost no motion
  • A predictable route
  • No way to customise colours (the research notes this need can conflict with high-contrast needs)
Deaf and hard of hearing
  • Audio or video without captions
  • The written language may be a second language after sign language
  • No audio or video, so nothing needs captions
  • Short, plain sentences
  • If voice or video is added, it needs captions and transcripts
Non-native speakers
  • Spanish tax vocabulary
  • Mixed languages in one interface
  • ESP/ENG switch
  • English keeps the official Spanish terms so they match the real forms
  • 18 definitions in the assistant
  • The language tagging described above

4. WCAG 2.2 check

The criteria most relevant to Acceso fácil and the windows it opens. This is a design review, not a formal audit.

CriterionLevelStatusHow
1.3.1 Info and relationshipsAMetSteps are labelled groups; answers have headings and lists
1.4.3 Contrast (minimum)AAMetOrange #CD4D08 is 4.51:1, and the text tones on grey were adjusted. Checked with axe on the mobile screens
1.4.6 Contrast (enhanced)AAAPartialThe orange and some greys are below 7:1
1.4.4 Resize text · 1.4.10 ReflowAAMetZoom works and the layout becomes one column; the assistant becomes a bottom panel
1.4.13 Content on hover or focusAAMetTooltips open on hover, tap or focus and close with Escape
2.1.1 Keyboard · 2.1.2 No keyboard trapAMetEverything works with the keyboard; full screen keeps focus inside, and Escape always gets out
2.2.1 Timing adjustableAMetNo time limits anywhere
2.4.3 Focus order · 2.4.7 Focus visibleA · AAMetFocus follows the route and goes back to the launch button; the outline is yellow with a black edge
2.5.8 Target size (minimum)AAMetButtons are at least 36 px (24 px is required)
2.5.5 Target size (enhanced)AAAPartial44 px would be needed
3.1.2 Language of partsAAPartialThe window language changes, but Spanish terms inside English text aren't tagged
3.2.3 Consistent navigationAAMetThe same three steps and the same controls everywhere
3.3.1 Error identification · 3.3.3 Error suggestionA · AAMetInline errors linked with aria-describedby and aria-invalid; dates corrected and explained
3.3.4 Error preventionAAMetA summary before saving in the chat flows; undo for "cobrada" and for deletions
4.1.3 Status messagesAAMetPolite live regions and role="status" confirmations

5. Acceso fácil: open gaps

  • Readability of the options. 12 px, upper case and monospaced is part of the app's look, but it's the hardest combination for dyslexic and low-vision users. Inside Acceso fácil, sentence case at 16 px in the sans font would help most.
  • Mixed languages. In English, wrap the Spanish terms in <span lang="es"> so screen readers pronounce them in Spanish. The research flags mixed-language reading as a common weakness.
  • Personal settings. A small "Ver" menu with larger text, high contrast (AAA) and a calm palette would cover the low-vision and autistic needs, which can conflict, without forcing one look on everyone.
  • Target size. 44 px buttons inside the assistant would reach AAA at little cost.
  • Read aloud. An optional "Escuchar" button on long answers and definitions would help dyslexic and older users who don't use a screen reader.
  • Save and come back. The research recommends letting people save a form and return to it. The demo is a sandbox by design, so this belongs to the real product.
  • Quarter filing. New invoices and expenses always go into the quarter of their date. Filing one in a later quarter is only possible from the screens.

6. Asistente Inteligente: scope

A conversation about this app's data. It doesn't give general advice or invent answers.

What it can do

GroupRequests (46 in total)
FiguresKey figures, net salary for any month, month by month, expense distribution, invoicing, table totals, invoice list, expenses (by IRPF category or by % IVA), IVA, IRPF, profit for a month, quarter or year, next month's salary forecast
Entering dataA new invoice or expense in a form inside the chat; marking an invoice as paid; salary clients; IVA or IRPF paid
Definitions19 tax terms: the 18 of Acceso fácil plus "beneficio"
ConversationGreeting, thanks, compliment, complaint, goodbye, help, and "outside the app", which politely explains what it can do

How a question is answered

1 · Tidy upSmall typos fixed against the app's vocabulary ("salrio" → "salario")
2 · JevPicks which of the 46 requests the text is making, with a confidence score
3 · PeriodThe app reads "este mes", "2T", "el mismo periodo el año pasado" and the context of the conversation
4 · AnswerBuilt from the app's own functions, the same ones as Acceso fácil
ShownAnswer, "Entendido como…" and suggestion buttons

Below a confidence of 0.45 the assistant doesn't guess: it asks "¿Te refieres a…?" with the two or three most likely options as buttons. Every answer ends with "Entendido como: …", which shows the request, the period, the engine and the confidence (for example "Salario neto · Octubre 2026 · Jev 99 %"), so the user can see how they were understood.

Accessibility of the chat

  • Messages are announced through a polite live region; everything works with the keyboard.
  • Forms in the chat have visible labels, inline errors and focus management, and Cancelar and Guardar are always visible.
  • Typing is optional for common tasks: example questions, suggestions and "¿Te refieres a…?" are all buttons.
  • Small typos are tolerated (swapped, missing or wrong letters), which helps dyslexic users and anyone typing on a phone.
  • Free text is still harder for some people than choosing. That is why Acceso fácil exists: the chat complements it and doesn't replace it.

7. What Jev adds

Without Jev: keyword recognition

Without Jev, the chat recognises questions by keywords. It works when people use the app's own words ("IVA", "facturas pendientes", "salario"). It fails when they say the same thing in their own way. These are real answers from the keyword recogniser in the current demo:

QuestionUnderstood asShould be
¿Cuánto le tengo que dar a Hacienda este trimestre?outside the appIVA / IRPF to pay
¿Cuánto me queda limpio este mes?outside the appProfit or net salary
How much do I owe the tax office?outside the appIVA / IRPF to pay
He comprado un portátil, ¿cómo lo apunto?FacturaciónNew expense
¿Quién no me ha pagado todavía?Mark as paidKey figures (pending invoices)
¿Me debe dinero algún cliente?Key figures ✓Key figures (pending invoices)

The last one is right only because its words happen to match the keyword list. The other five need someone to understand what is being asked, not just spot the words.

With Jev

  • Meaning, not keywords. Jev chooses between the 46 descriptions in jev-intents.json, so "darle a Hacienda" can reach the tax requests without that phrase being listed anywhere.
  • An honest confidence score. It tells the app how sure it is. That is what makes "¿Te refieres a…?" possible instead of a confident wrong answer.
  • Two languages from one list. Spanish and English questions are matched against the same descriptions.
  • Easier to grow. Adding a request means adding one line to jev-intents.json and the answer in the app. There are no keyword lists to maintain.

The six questions in the table above are a good set to try on the live demo, to see where Jev gets them right.

What Jev deliberately doesn't do

  • It doesn't see the data. Only the typed question is sent; no figure ever leaves the page.
  • It doesn't calculate or write the answers. Every number and sentence comes from the app's code, so it can't invent an amount or a tax rule.
  • It doesn't read periods. "Este mes", "el 2T" and "el mismo periodo el año pasado" are worked out by the app, which also remembers the previous question for follow-ups.
Jev decides what is being asked; the app decides for which period and what the answer is.

8. Limits of the Asistente Inteligente

AreaLimitWhat the user sees
ConnectionNeeds jev.php (PHP with cURL) and a TypeSafe key on the server. Answers wait at most 4 seconds"Comprensión: reconocimiento local · Jev no conectado", and keyword recognition takes over
Usage20 questions per visitor every 24 hours, up to 300 characters each. Every question is one paid call to TypeSafe"límite de Jev de esta demo alcanzado", and keyword recognition takes over
One request per message"IVA e IRPF del 3T" contains two"¿Te refieres a…?" IVA or IRPF
ScopeOnly this app's data and its tax terms. No legal or tax advice ("¿puedo desgravarme el coche?")A polite explanation and example questions
Follow-upsShort questions (three words or fewer, or starting with "y…") are treated as follow-ups and keep the previous year, even when the topic changes"Gastos del 3T" after a question about 2025 answers for 2025
LanguagesSpanish and English onlyOther languages usually fall into "outside the app"
MemoryOnly the open conversation; nothing is storedReloading starts empty
Without Jevapp_DEMO_sin_jev.html makes no network calls and relies only on keyword recognitionWorks for questions in the app's own words (Section 7)

9. Next steps

Acceso fácil

  • P1Tag the Spanish terms in English text with lang="es".
  • P1Show option buttons in sentence case at 16 px, at least 44 px tall.
  • P2Add a "Ver" menu: larger text, high contrast (AAA), calm palette.
  • P3Add an optional "Escuchar" button for long answers and definitions.

Asistente Inteligente

  • P1Keep the year of a short follow-up only when the topic stays the same.
  • P1Try the questions in Section 7 on the live demo and improve the descriptions in jev-intents.json where Jev misses.
  • P2Answer two requests in one message ("IVA e IRPF del 3T") by showing both answers.
  • P3Voice input through the browser's dictation, with the text shown before sending (captions for any future audio).