Standards
The Next.js frontend is built against WCAG 2.2 AA, Section 508, and NYS ITS accessibility expectations.
Preparing workspace
Loading IDDT workspace
The Individualized Degree Design Tool is built so every student, advisor, and administrator can do the work the platform was made for — regardless of the input device, screen, language, or assistive technology in front of them. This statement summarises what we conform to, what we have shipped, where we still owe improvement, and how to reach the team when something blocks you.
Headline commitments
These are the load-bearing promises. Every other section on this page elaborates on one of them.
The Next.js frontend is built against WCAG 2.2 AA, Section 508, and NYS ITS accessibility expectations.
Every pull request runs linting, type checks, unit tests, Playwright workflows, and axe-based accessibility checks.
Students can use keyboard-accessible course planning controls and persistent text, contrast, reading, and language preferences.
Accessibility findings are tracked with the same release discipline as security, workflow, and integration defects.
WCAG 2.2 AA
The four WCAG 2.2 principles, with the specific success criteria IDDT is built and tested against. We re-verify these against axe and manual review on every maintenance release.
WCAG principle · P
Information and interface components must be presentable in ways the user can perceive.
WCAG principle · O
Interface components and navigation must be operable by every user.
WCAG principle · U
Information and the operation of the interface must be understandable.
WCAG principle · R
Content must be robust enough that it can be interpreted by a wide range of user agents and assistive technologies.
Supported today
Each tile names a supported accommodation, the assistive-tech configuration it has been tested against, and how to enable it.
Every interactive element across plan builder, advisor queue, admin control center, and account settings is reachable via Tab and operable via Enter or Space. There is no mouse-only affordance anywhere in the product.
How to enablePress Tab to begin navigating. The first focus target is the "Skip to main content" link, which jumps past the side rail.
Tested against NVDA + Firefox, JAWS + Chrome, and VoiceOver + Safari. Landmark structure, heading nesting, live regions, and aria-labelledby relationships are all wired so a screen reader walks the page in document order without losing context.
How to enableStart your screen reader before navigating to IDDT — page metadata and landmark roles are present on the first paint.
IDDT honours the OS-level prefers-reduced-motion media query. Every transition, animation, and smooth-scroll collapses to ~0 duration when the preference is set, while end states (final color, final position) are preserved.
How to enableEnable reduced motion in your OS accessibility settings — no toggle in the app is required.
The accessibility toolbar exposes a Contrast toggle that flips IDDT into a high-contrast palette. Body copy holds AAA contrast against its surface; UI elements gain explicit borders so they remain distinguishable.
How to enableClick Contrast in the accessibility toolbar (top right of any page). Setting persists across sessions and tabs.
The Text toggle in the accessibility toolbar bumps body type up by ~12.5% across the whole product. Spacing, line-height, and component min-heights all rebalance around the new measure — nothing clips or overflows.
How to enableClick Text in the accessibility toolbar. Pairs well with Reading mode for long-form surfaces.
Reading mode constrains the page measure to a comfortable line length and raises line-height on prose, paragraphs, list items, textareas, and form labels. Tables and grids are untouched.
How to enableClick Reading in the accessibility toolbar to switch the document into reading-mode layout.
The accessibility toolbar carries a language switcher. Choosing Español updates the <html lang> attribute, swaps every UI string, and writes a cookie so the next request renders the locale server-side — no flash of English on reload.
How to enableUse the EN / ES toggle in the accessibility toolbar. Locale also follows your browser preference on first visit.
If something is blocking you
The accessibility coordinator triages every report and routes the fix through the same release pipeline as feature and security work.
Report a barrier
If something on IDDT keeps you from completing a task, please tell us. The accessibility coordinator owns triage, response, and follow-up; every report becomes a tracked engineering ticket and is reviewed at the next maintenance release.
What to include
The clearer the report, the faster the fix. The mailto link below opens a draft with this template pre-filled — or copy and paste it into your own email client.
Page URL: <paste the full URL here> Assistive technology + version: <e.g. NVDA 2024.1, JAWS 2024, VoiceOver iOS 17> Browser: <e.g. Firefox 124> Task that was blocked: <e.g. submitting a plan revision> Expected behaviour: <what should have happened> Observed behaviour: <what actually happened>
Response target: one business day. Critical access barriers (something that blocks an end-user from completing a graded or registrar-bound task) are escalated to the same on-call rotation as production incidents.
Transparency
We list active barriers and recently-resolved ones in the same table so the changelog is part of the statement, not a marketing afterthought.
| Issue | Impact | Remediation | Status |
|---|---|---|---|
| Plan builder term grid — drag handle on a touch deviceWCAG 2.1.1 · Keyboard | The drag-and-drop course handle in the plan builder is not yet exposed as a keyboard-and-touch alternative; touch users currently use the "Move course" menu instead.RemediationA keyboard + touch lift mechanism ships in the next minor release; manual move-via-menu remains supported in the meantime. | A keyboard + touch lift mechanism ships in the next minor release; manual move-via-menu remains supported in the meantime. | In progress |
| PDF print package — table column headersWCAG 1.3.1 · Info and relationships | The generated PDF print package emits requirement tables without scoped column headers when opened by some legacy PDF readers.RemediationThe HTML source carries scoped headers; the issue is in downstream PDF renderers. We are testing per-renderer remediation and will roll out a tagged-PDF pipeline at the next major release. | The HTML source carries scoped headers; the issue is in downstream PDF renderers. We are testing per-renderer remediation and will roll out a tagged-PDF pipeline at the next major release. | Monitoring |
| Tenant splash — first-paint cover dismissalWCAG 2.1.2 · No keyboard trap | On a very slow first paint, the tenant splash cover can briefly trap pointer events. Screen reader announcement is unaffected because the cover is aria-hidden.RemediationThe first-load splash now flips to visibility: hidden after the fade so it leaves the pointer flow entirely. Fix shipped May 2026. | The first-load splash now flips to visibility: hidden after the fade so it leaves the pointer flow entirely. Fix shipped May 2026. | Resolved |
Compliance summary
Conformance with WCAG 2.2 AA · Section 508 · NYS ITS S-13 · FERPA-aware access controls