Accessibility Conformance Report
VPAT® version 2.5 — WCAG 2.1 edition, with notes on Section 508 and EN 301 549.
Report
| Products | fxEditor equation editor, version 5.9.9.48 of this website, built on fxEditor API 5.0.1 — as embedded in other sites and plugins; and the CodeCogs LTI 1.3 tool (lti.codecogs.com), version 1.0.0 |
|---|---|
| Description | fxEditor is a JavaScript equation editor: a toolbar of symbol panels, a LaTeX source pane and a visual (WYSIWYG) maths pane, producing MathML, SVG or images. The LTI tool is a page, opened from a learning platform, that hosts fxEditor and returns the equation to the course. |
| Report date | 12 November 2026 |
| Contact | support@codecogs.com, or our contact form |
| Evaluation methods |
|
Summary
The equations fxEditor produces are accessible by default: MathML and SVG carry a spoken description of the maths, generated from the LaTeX, so a screen reader reads “x squared plus 1”, not the code. The editor itself is only partly accessible. It can be used from the keyboard — the toolbar through Alt shortcuts and arrow keys, the editing panes with Tab and arrow keys — but the toolbar is not in the Tab order, its buttons are named by tooltips, the visual maths pane is not described to a screen reader as the caret moves, some colours are low in contrast, and there are no announcements of status changes. Users of assistive technology can write the equation in the LaTeX pane, which is plain text, and get accessible output.
Conformance levels: Supports — meets the criterion without known defects; Partially Supports — some functionality does not meet it; Does Not Support — most functionality does not meet it; Not Applicable.
WCAG 2.1 Level A
| Criterion | Conformance level | Remarks |
|---|---|---|
| 1.1.1 Non-text Content | Partially Supports | MathML and SVG output carry spoken
text by default (a role="math" wrapper with an aria-label; SVG with
role="img" and aria-label). Equations inserted as <img>
— including by the LTI tool — have the LaTeX source as their alt text, not the spoken
text. The LTI preview image has empty alt text. Toolbar buttons are named only by their tooltip,
which is the LaTeX command until the symbol names load. Colour swatches and history buttons have
alt text. |
| 1.2.1 Audio-only and Video-only (Prerecorded) | Not Applicable | No audio or video. |
| 1.2.2 Captions (Prerecorded) | Not Applicable | No video. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) | Not Applicable | No video. |
| 1.3.1 Info and Relationships | Partially Supports | Symbol panels are groups with
names; the context menu uses menu roles; the picture and chemistry dialogs are labelled dialogs with
labelled toolbars and fields. But the toolbar has no toolbar role or name; the editing
panes have no role or name (the LaTeX pane's placeholder is visual only); the autosuggest list has
no list box roles; the matrix-size grid cells are unnamed; dialog tabs have no tab panels; the LTI
page has no main landmark. |
| 1.3.2 Meaningful Sequence | Supports | Reading order follows the visual order: toolbar, then editing panes, then output. |
| 1.3.3 Sensory Characteristics | Supports | Instructions do not rely on shape, size or position alone. |
| 1.4.1 Use of Color | Partially Supports | Disallowed variables are marked by colour, a double underline and a tooltip. LaTeX syntax highlighting is colour (partly bold), but it is an aid, not information needed. The auto-brackets switch shows its state by colour and knob position only, and is hidden from assistive technology. |
| 1.4.2 Audio Control | Not Applicable | No audio. |
| 2.1.1 Keyboard | Partially Supports | Checked in the browser: Alt+1 opens the first symbol panel and focuses its first button; arrow keys move between symbols; Enter inserts the symbol and returns focus to the editor. Alt+number (then letters past nine) opens each panel; Tab moves between panels while one is open; Escape closes it. The context menu (Menu key or Shift+F10) is keyboard operable. Not keyboard operable: the auto-brackets switch; the matrix-size grid (the row and column fields are an alternative); drawing on the picture and chemistry canvases (tools, selection, moving and deleting are keyboard operable). The Alt shortcuts have not been tested with screen readers, which may intercept them. |
| 2.1.2 No Keyboard Trap | Supports | Tab moves within the equation (between empty
slots); Escape then Tab leaves the editor. This is announced through
aria-description, which not every screen reader reads, and our user guide does not yet
describe it. While a symbol panel is open, Tab cycles panels until Escape is pressed. |
| 2.1.4 Character Key Shortcuts | Partially Supports | Toolbar shortcuts all need Alt. The picture and chemistry editors use single-letter tool keys while their dialog is open and focus is not in a text field; these cannot be turned off or remapped. |
| 2.2.1 Timing Adjustable | Partially Supports | Reaching the second toolbar row by keyboard needs a key pressed twice within 0.6 seconds; Tab between panels is an untimed alternative. An LTI session expires after 24 hours at most; there is no warning, and an unsaved equation is lost. |
| 2.2.2 Pause, Stop, Hide | Supports | Only the text caret blinks, which is exempt. No moving or auto-updating content. |
| 2.3.1 Three Flashes or Below Threshold | Supports | Nothing flashes. |
| 2.4.1 Bypass Blocks | Not Applicable | fxEditor is a component within the host page; the LTI page has no repeated blocks. |
| 2.4.2 Page Titled | Partially Supports | The LTI editing page has a title. The short pages the LTI server returns (the result page and error messages) have none. The component itself sets no title, as the host page does. |
| 2.4.3 Focus Order | Partially Supports | Focus returns to the editor after a symbol is inserted and after the context menu closes; dialogs take focus when opened. Escape from a panel leaves focus on the panel rather than returning it to the editor. Dialogs are marked modal but do not keep Tab inside them. |
| 2.4.4 Link Purpose (In Context) | Supports | Links have descriptive text. |
| 2.5.1 Pointer Gestures | Supports | No path-based or multi-point gestures. Drag to resize the LTI panes has keyboard and single-pointer alternatives. |
| 2.5.2 Pointer Cancellation | Supports | Buttons act on click (the up event). |
| 2.5.3 Label in Name | Supports | Text buttons' names contain their visible text. Symbol buttons show a symbol, not text. |
| 2.5.4 Motion Actuation | Not Applicable | No motion input. |
| 3.1.1 Language of Page | Partially Supports | The LTI editing page and this site declare English. The LTI server's result and error pages do not. Spoken text for equations is generated in English only, without a language attribute. |
| 3.2.1 On Focus | Supports | Focus causes no change of context. |
| 3.2.2 On Input | Supports | Typing updates the equation preview only. |
| 3.3.1 Error Identification | Partially Supports | LaTeX errors are shown inline in the rendered equation, not announced or exposed as an error state on the input. The LTI tool's messages (such as “Write an equation first.”) are shown as text but not announced. |
| 3.3.2 Labels or Instructions | Partially Supports | Matrix row and column fields, and dialog fields, are labelled. The LaTeX and maths panes have no label beyond a visual placeholder. |
| 4.1.1 Parsing | Partially Supports | A few fixed element ids (such as the matrix row and column fields) repeat when a page has more than one editor. (This criterion is obsolete in WCAG 2.2.) |
| 4.1.2 Name, Role, Value | Partially Supports | Symbol buttons have
role="button", named by title only. Panels expose
aria-expanded, on a group role where it is not supported. The editing
panes are editable regions with no role, name or state; the visual maths pane does not expose the
caret position or the structure being edited. The autosuggest list has no roles or active-item
state. Dialogs, their toolbars and the context menu expose correct roles and names. |
WCAG 2.1 Level AA
| Criterion | Conformance level | Remarks |
|---|---|---|
| 1.2.4 Captions (Live) | Not Applicable | No live media. |
| 1.2.5 Audio Description (Prerecorded) | Not Applicable | No video. |
| 1.3.4 Orientation | Supports | Works in either orientation. |
| 1.3.5 Identify Input Purpose | Not Applicable | The editor collects no personal information. |
| 1.4.3 Contrast (Minimum) | Partially Supports | Toolbar, focus outline, LTI hint, status and Insert button pass. Below 4.5:1: the LaTeX pane's placeholder (#888, 3.5:1); predictor captions (3.1:1); context-menu shortcut text (3.2:1); syntax colours for operators (3.1:1), brackets (2.8:1) and matrices (4.0:1). |
| 1.4.4 Resize Text | Partially Supports | Text scales with browser zoom; the LTI tool also scales the toolbar. Toolbar buttons and some fields have fixed pixel sizes, not checked at 200% text-only zoom. |
| 1.4.5 Images of Text | Supports | Toolbar symbols are drawn as SVG paths of mathematical notation, which is essential to the presentation. |
| 1.4.10 Reflow | Partially Supports | Checked in the browser: this site's editor page reflows at 320 CSS pixels with no horizontal scrolling. Toolbar rows wrap on touch devices but scroll sideways on devices with a mouse. The picture and chemistry dialogs have a minimum width of 560 pixels. |
| 1.4.11 Non-text Contrast | Partially Supports | The toolbar focus outline passes (10:1). Below 3:1: borders of empty slots in the maths pane; the auto-brackets switch; the focus ring and button borders in dialogs; the LTI pane dividers until focused. |
| 1.4.12 Text Spacing | Not Evaluated | Not tested. Some fields have fixed heights. |
| 1.4.13 Content on Hover or Focus | Partially Supports | Panels opened by hover stay open while the pointer moves into them and close with Escape, but close when the page scrolls. Tooltips are the browser's own. |
| 2.4.5 Multiple Ways | Not Applicable | A component, not a set of pages. |
| 2.4.6 Headings and Labels | Partially Supports | The LTI page has a heading; panels are named. The editing panes are not labelled. |
| 2.4.7 Focus Visible | Partially Supports | Toolbar buttons, the predictor, the context menu and the LTI dividers show focus. The visual maths pane removes the browser's outline and shows only its own caret; dialogs remove their outline; the LaTeX pane has a focus outline only where the host page's style sheet adds one (this site's does). |
| 3.1.2 Language of Parts | Supports | No content in other languages. |
| 3.2.3 Consistent Navigation | Not Applicable | A component, not a set of pages. |
| 3.2.4 Consistent Identification | Supports | Controls are named consistently. |
| 3.3.3 Error Suggestion | Partially Supports | LaTeX errors are shown in the rendered equation; disallowed variables say so in a tooltip. No suggestions are announced. |
| 3.3.4 Error Prevention (Legal, Financial, Data) | Not Applicable | No legal or financial transactions. |
| 4.1.3 Status Messages | Partially Supports | The predictor's status is a live region. Autosuggest results, insertions, undo and redo, the picture editor's status line and the LTI tool's messages are not announced. |
Section 508 and EN 301 549
- Revised Section 508, Chapter 5 (Software) and EN 301 549 clauses 9 (Web) and 11 (Software): the web criteria are those of WCAG 2.1 A and AA above, with the same results. For 502 / 11.5 (interoperability with assistive technology): fxEditor uses standard HTML, ARIA and MathML and no platform accessibility API of its own; the gaps in name, role and value are listed under 4.1.2. For 503.2 / 11.7 (user preferences): fxEditor follows browser zoom and font settings, but does not respond to high-contrast (forced colours) or reduced-motion settings.
- Chapter 3 Functional Performance Criteria / EN 301 549 clause 4: Without vision and with limited vision: Partially Supports — output is accessible, the visual editing pane is not; the LaTeX pane is a usable alternative. Without perception of colour: Supports. Without hearing, without speech: Supports. With limited manipulation: Partially Supports — keyboard operation as under 2.1.1; small targets (16–20 pixels). With limited reach and strength: Supports. With limited language, cognitive and learning abilities: Partially Supports — the visual pane and toolbar avoid the need to learn LaTeX; error messages are not announced.
- Chapter 6 Support Documentation and Services / EN 301 549 clause 12: Partially Supports. The user guide describes the keyboard shortcuts and the accessible output, in HTML. It does not yet describe Escape then Tab to leave the editor. Support is by email and the contact form.
Planned improvements
We intend to address the gaps above, starting with those that most affect screen-reader and keyboard users: names and roles for the toolbar and editing panes, a spoken description in the alt text of inserted images, announcements of errors and status changes, contrast, and a keyboard-reachable toolbar. [[TODO: target dates, or remove this section]] To report a problem, or to ask for this report in another format, email support@codecogs.com.
“Voluntary Product Accessibility Template” and “VPAT” are registered service marks of the Information Technology Industry Council (ITI).
