EasyCAM5000

EasyTrace5000 Accessibility Guide

Keyboard navigation, screen reader support, and WCAG compliance

EasyTrace5000 is designed to be usable with keyboard-only navigation and compatible with assistive technologies. This document details keyboard controls, focus management, and WCAG 2.1 compliance efforts.

Keyboard Navigation Overview

The interface is designed for full keyboard operability using a Focus Zone strategy. This reduces repetitive tabbing by allowing users to jump between major workspace areas.

These shortcuts work globally to navigate the application structure.

KeyAction
F6Cycle focus forward through zones: Toolbar → Operations Tree → Canvas → Properties Panel
Shift + F6Cycle focus backward through zones
TabMove focus to the next interactive element within the current zone
Shift + TabMove focus to the previous interactive element
F1Open the Help & Shortcuts modal
F2Toggle between the 2D canvas and the 3D toolpath view
1 - 5Cycle selection through a category's files and artifacts (1: Isolation → 5: Stencil), announcing the category
Delete / BackspaceDelete the current selection (outside the tree)
IOpen the Add Files dialog
Ctrl + Alt + DToggle verbose debug logging

Note: A Skip Link is available on the first Tab press after page load to jump directly to the Canvas. Each F6 press announces the zone it landed in through the status region.

Zone-Specific Controls

Each zone has specific interactions once it receives focus.

Toolbar & Sidebar Headers

KeyAction
Tab / Shift + TabNavigate between buttons and menu items
← / →Navigate horizontally between toolbar buttons
Enter / SpaceActivate the focused button or toggle a dropdown
EscapeClose an open dropdown menu

Operations Tree (Left Sidebar)

The tree uses a roving tabindex pattern. Press Tab to enter the tree list, then use arrow keys to navigate.

Each operation category holds a source file, and each generated artifact — Offsets, Preview, Toolpaths — appears as its own child node with its own visibility toggle.

KeyAction
↑ / ↓Move focus to the previous or next visible item
→Expand a category/file, or move focus to the first child
←Collapse a category/file, or move focus to the parent
Home / EndJump to the first or last item in the tree
Enter / SpaceSelect the item (opens properties) or toggle category expansion
Delete / BackspaceRemove the focused file or artifact node
VToggle visibility of the selected layer

Canvas Controls

These controls are active when the Canvas zone has focus.

View Manipulation

KeyAction
↑ / ↓ / ← / →Pan the view
Shift + ArrowPan faster
+ / -Zoom in / Zoom out
Home / F / =Fit all geometry to view
F2Switch between the 2D canvas and the 3D toolpath view

Display & Tools

KeyAction
WToggle Wireframe mode
GToggle Grid visibility
BSet Origin to Bottom-Left (Preview)
CSet Origin to Center (Preview)
OSave/Confirm current origin position

3D View

These apply once the 3D viewport has focus. Press F2 to enter 3D, then F6 until focus reaches the viewport.

KeyAction
↑ / ↓ / ← / →Orbit the camera
Shift + ArrowPan the camera target
+ / -Zoom in / Zoom out
Page Up / Page DownZoom in / Zoom out
Home / FFit the model to the view
F2Return to the 2D canvas

Property Panel (Right Sidebar)

This panel handles parameter inputs for the selected stage node. The fields it shows change with the stage, so the same keys apply throughout.

KeyAction
TabMove to next field, button, or help icon
Shift + TabMove to previous field
↓ / ↑Navigate focus between property rows (Grid Navigation)
EnterEnter "Edit Mode" on a focused row
Enter (while editing)Commit change and move to next field
EscapeCancel edit/tooltip and return focus to the row

Modals & Dialogs

When a modal is open, focus is trapped within it until it closes, and global navigation keys (F6) are disabled. Closing a modal returns focus to the element that opened it. Where a modal's body scrolls, focus lands on the scrollable body so the arrow keys and Page Up / Page Down work immediately.

General Navigation

KeyAction
TabCycle forward through inputs and buttons
Shift + TabCycle backward through inputs and buttons
EscapeClose the modal or cancel the current action
↑ / ↓Scroll the body of a long modal

Confirmations

EasyTrace5000 has no undo. Deleting an operation or a generated artifact therefore asks first. The confirmation is an alert dialog, its buttons are reachable by Tab, Escape cancels, and focus returns to the tree node you were on either way.

Sortable Lists (Export Manager)

The Export Manager's operation list is drag-and-drop, with a full keyboard equivalent:

KeyAction
SpaceGrab the focused item for reordering
↑ / ↓Move the grabbed item up or down the list
SpaceDrop the item in its new position
EscapeCancel the grab action and reset position

Drill Tooling Table

The per-diameter drill table is a modal grid. Tab moves between cells and Escape closes the modal. Every input and dropdown carries an accessible name that names both its hole diameter and its column, so a cell is never announced as a bare number.

Screen Reader Support

Live Regions

Semantic Structure

Button Labels

All icon-only buttons include aria-label attributes describing their function:

SVG Icons

Decorative icons are marked aria-hidden="true" as they enter the page, including icons injected into tree nodes and stage nodes after load. Icons that carry meaning on their own are given an accessible name instead.

WCAG 2.1 Compliance

EasyTrace5000 targets WCAG 2.1 Level AA compliance. While the application is fully functional for keyboard users, some visual aspects (such as complex canvas geometry) have inherent limitations.

Implemented Guidelines

GuidelineDescriptionStatusImplementation Notes
1.1.1Non-text Content✓Icon-only buttons include aria-label attributes; decorative icons use aria-hidden="true". Documentation figures carry a <title> and a caption.
1.3.1Info and Relationships✓Semantic HTML5 landmarks (<main>, <aside>, <nav>) and proper ARIA tree roles for the Operations panel.
1.3.2Meaningful Sequence✓DOM order matches the visual layout; focus order flows logically through sidebars and canvas.
1.4.1Use of Color✓Status messages (Success/Error) use both text labels and color indicators.
1.4.13Content on Hover/Focus✓Custom TooltipManager ensures tooltips are persistent on focus, hoverable, and do not obscure active content.
2.1.1Keyboard✓All interactive elements (buttons, inputs, tree nodes, canvas) are keyboard accessible.
2.1.2No Keyboard Trap✓Modal dialogs trap focus intentionally while open but release it correctly upon closing.
2.1.4Character Key Shortcuts✓Single-key shortcuts are scoped to the region that owns them and are disabled entirely inside forms and text entry.
2.4.1Bypass Blocks✓A "Skip to Canvas" link appears on the first Tab press.
2.4.3Focus Order✓Modals and panels manage focus logically; closing a modal returns focus to the triggering element.
2.4.6Headings and Labels✓Descriptive headings identify all major workspace sections; inputs have associated <label> elements.
2.4.7Focus Visible✓High-contrast CSS focus rings (:focus-visible) appear on all interactive elements.
2.5.3Label in Name✓Accessible names match visible text. Navigation links rely on their visible text; aria-label is used only for icon-only controls, where it matches the visual tooltip.
3.2.1On Focus✓Focusing on input fields or tree items never triggers a context change (submit/navigation).
3.2.2On Input✓Parameter changes update the preview or require explicit confirmation; no unexpected page reloads.
4.1.2Name, Role, Value✓Custom controls (Tree View, Toggles) use correct ARIA roles (tree, treeitem, button).
4.1.3Status Messages✓Dynamic updates (file loading, generation progress, success messages) are announced via aria-live regions.

Partial or Planned Support

GuidelineDescriptionStatusNotes
1.4.3Contrast (Minimum)PartialMost default text meets 4.5:1, but some secondary and hint text in both themes does not. Dedicated high-contrast themes are in development.
1.4.10ReflowPartialThe workspace is laid out for a landscape viewport and does not reflow to a single column; below roughly 768 CSS pixels a warning bar appears instead. Because browser zoom narrows the viewport as it magnifies, this is reached at high zoom on a wide display. Collapsible side panels are planned. In the meantime, text-only zoom or operating-system display scaling magnifies without narrowing the viewport.
1.4.11Non-text ContrastPartialSome UI borders and disabled states in the default theme may fall below 3:1. High Contrast themes are supported by the engine and are currently in development.
1.1.1Non-text Content (3D view)PartialThe 3D toolpath view is a WebGPU canvas with no non-visual equivalent. Toolpath statistics — pass count, estimated time, travel distance — appear as text on the Toolpaths node in the operations tree and in the Export Manager. Nothing in the workflow requires the 3D view.
1.2.xTime-based MediaN/AThe application does not contain audio or video content.

Known Limitations

  1. Canvas interaction: The 2D canvas preview is visual-only. Geometry data is available via the operations tree, but spatial relationships require visual inspection.

  2. 3D view: The 3D toolpath view is visual-only, though the camera is fully keyboard-operable. Nothing in the workflow requires it: an operation can be generated, exported and cut without ever opening it.

  3. Complex geometry feedback: When generating offsets or toolpaths, detailed geometric results are shown visually but not fully announced to screen readers beyond progress and success/failure status.

  4. Drag-and-drop file upload: Requires a pointer. Alternative: click the drop zones, or use the file input buttons in the operations tree.

  5. Touch devices: Touch zoom/pan works but keyboard navigation is the primary accessibility path.

  6. Color-coded warnings: Drill operation warnings use color coding (green/yellow/red). Status messages provide text descriptions of the same information.

  7. Narrow viewports and high zoom: See guideline 1.4.10 above. Rotating a tablet to landscape, or widening the window, restores the full workspace.

  8. Audio: EasyTrace5000 produces no sound. Every state change is reported as text, so no information is conveyed by audio alone.

  9. EasyShape5000: This guide covers EasyTrace5000 only.

Reporting Issues

If you encounter accessibility barriers, please report them via GitHub Issues.

There's a dedicated template available for these reports to ensure the necessary technical details are included.

  1. Go to the New Issue page
  2. Select the Accessibility Report template
  3. Fill in the required details (Browser, OS, Assistive Technology)

Resources