Accessibility

Accessibility at Lectern

Lectern's app is built on the Renkara design system, and on 10/29/2026 we ran axe-core over its main screens in light and dark at phone and desktop widths. That scan found three kinds of serious problem, listed below as known gaps, and the rest passed. Here is what the product supports today and what we have actually checked. We do not claim a WCAG conformance level for the product.

Illustration: a quiet public reading room in soft light, with a wide level entrance, a low service counter, and clear open aisles between the shelves.
The product

What Lectern supports today

Each line says what the product does, how we know, and where to look. “Not yet tested” means exactly that: we have not checked, and we do not claim it.

  • Partly supported

    Keyboard operation

    Document cards are focusable links that open on Enter or Space, and Command-K opens a command palette. The scan found four scrolling tables (History, Assignments, Analytics) that a keyboard cannot scroll at phone width.

    Evidence

    • frontend/src/components/DocumentCard.tsx: each card is role link with tabIndex 0 and an Enter and Space handler
    • frontend/src/components/CommandPalette.tsx: the Command-K palette
    • app-axe-scan.json: the scrollable-region-focusable rule fails on the overflow-x-auto table wrappers at 375 pixels, in both themes
    • A keyboard-only walkthrough of every flow has not been recorded.
  • Partly supported

    Screen reader landmarks and labels

    axe-core checks names, roles, labels, and structure. It found one serious problem, a card whose accessible name is shorter than its visible text, and no other serious name or structure violation. Lectern has not been tested with a screen reader.

    Evidence

    • app-axe-scan.json: eight routes at two widths in two themes, 32 scans; the label-content-name-mismatch rule fails on the document cards (DocumentCard.tsx sets aria-label to the title only)
    • frontend/src/components/chat/ChatPanel.tsx: the assistant's panel and its icon buttons carry accessible names
  • Partly supported

    Contrast in light and dark

    Text and controls pass axe-core's contrast rule in the dark theme and almost everywhere in the light theme. The failures are the tinted badges (the accent and warning tints) in the light theme at desktop width.

    Evidence

    • app-axe-scan.json: color-contrast fails only in the light theme at 1440 pixels, on badges drawn with the design system's accent and warning tints; it passes everywhere else
  • Partly supported

    Reduced motion

    The library and the Document Player check the reduced-motion setting in code. No test covers it yet.

    Evidence

    • frontend/src/pages/LibraryPage.tsx: reads prefers-reduced-motion before animating
    • frontend/src/player/DocumentPlayer.tsx: reads prefers-reduced-motion
  • Not yet tested

    Text resize and zoom

    Resizing text to 200 percent has not been tested.

  • Supported

    Mobile and touch

    The app fits a 375 by 667 phone screen with no sideways scrolling, the collection tree becomes a drawer, and the assistant's controls are at least 44 by 44 pixels.

    Evidence

    • app-axe-scan.json: no page-level horizontal overflow in any of the 32 scans, including every route at 375 pixels
    • frontend/e2e/library.spec.ts: the collection tree lives in a drawer and the library has no horizontal overflow at 375 pixels
    • frontend/e2e/chat-panel.spec.ts: every assistant control clears a 44 pixel tap target

No WCAG conformance level is claimed for Lectern. The evidence is an automated axe-core scan run on 10/29/2026 (scripts/app-axe-scan.mjs, results in AVIAN/records/fleet-showcase/lectern/app-axe-scan.json), a few layout tests in the app's end-to-end suite, and reading the code. No one has audited Lectern against WCAG or tested it with a screen reader. The scan checks the top-level page only: a document's own content renders in a sandboxed frame that the scan does not enter.

Known gaps

What does not work yet

  • Document cards are named by their title alone, not their visible text (axe label-content-name-mismatch, serious).
  • Tinted badges fail the contrast rule in the light theme at desktop width (axe color-contrast, serious). The cause is the shared design system's accent and warning badge tints.
  • Scrolling tables on History, Assignments, and Analytics cannot be scrolled by keyboard at phone width (axe scrollable-region-focusable, serious).
  • Lectern has not been tested with a screen reader, and reduced motion and 200 percent text resize are not covered by tests.
  • The Document Player and the native apps have not been checked for accessibility.
This website

How this site is built and checked

This site targets WCAG 2.2 level AA. That is a target we build and test toward, not a certification, and no one has audited it for conformance.

  • Structure

    A skip link, labeled landmarks (header, navigation, main, footer), one h1 per page, and headings that do not skip levels.

  • Keyboard and focus

    Links and buttons are native elements, so they work from the keyboard. Focus is drawn as a visible ring, and the menu closes with Escape.

  • Contrast

    Text meets 4.5 to 1 in both the light and dark themes, checked against the stylesheet by the test suite.

  • Motion

    Transitions and animation switch off when your system asks for reduced motion.

  • Small screens and zoom

    Layouts hold at 375 pixels wide with no sideways scrolling, text resizes with the browser, and touch targets are at least 44 pixels.

  • Automated scan

    Every page is scanned with axe-core at 375 and 1440 pixels in light and dark, and the checks fail on any serious or critical violation. Automated tools find only part of the problems, so this is a floor, not proof.

  • Images

    Every product screenshot has a text description and comes in a light and a dark version that follows your theme.

  • Your theme choice

    The theme follows your system setting until you pick one with the button in the header.

Feedback

Tell us what is in your way

If something here or in Lectern does not work for you, write to Renkara Media Group. Say what you were doing, what you used, and what happened, and a person will answer.

Statement last reviewed 10/29/2026.