— Accessibility← Home
Built to beused by everyone.
Target standard, features in place, and what to do if you hit a barrier.
Target standard
This site aims to meet WCAG 2.2 Level AA. Conformance is a moving target — this page lists what is in place today, what is known not to be, and how to flag anything that's missed.
What's in place
- Semantic structure — every page uses
<header>,<main>,<nav>, and<footer>landmarks. Headings are hierarchical: one<h1>per page, with<h2>/<h3>below. - Skip link — pressing Tab on any page surfaces a "Skip to main content" link as the first focusable element.
- Keyboard navigation — every interactive element (links, hamburger toggle, year-rail buttons, publication filter chips) is reachable and operable with a keyboard. Escape closes the mobile menu.
- Current page indication — the active nav link carries
aria-current="page"in addition to its visual styling. - Color contrast — body text meets the 4.5 : 1 AA threshold against its background; large display text meets the 3 : 1 large-text threshold.
- Touch-target size — interactive elements are at least 44 × 44 px on touch devices, meeting WCAG 2.5.5.
- Reduced motion — when the operating system requests reduced motion, the long fade-in animations, the pulsing "available for work" dot, and the year-rail tick are disabled.
- Inert background while menu open — when the mobile menu is open, the rest of the page is set
inert+aria-hiddenso focus and screen-reader virtual cursors stay inside the drawer. - Image descriptions — informative images have meaningful
alttext; decorative images carry emptyalt="". - Self-hosted fonts with
font-display: swapso text is readable while fonts load. - Resizable text — typography uses relative units; pinch-zoom is not blocked (no
maximum-scaleon the viewport).
Known limitations
- The CV year-rail's "click to scroll to that year" feature relies on JavaScript. With JS disabled, all the experience entries are still readable in normal page flow — the rail just becomes static labels.
- The mobile menu drawer relies on JavaScript. With JS disabled, all four pages are reachable through the in-page links and the footer.
- Honest disclosure: I have not yet had this site evaluated by a third-party accessibility specialist, nor tested it with every assistive technology. If you encounter a barrier, please tell me.
Tested with
- Chrome 124 + 125 (desktop + mobile emulation)
- Firefox 125
- Keyboard-only navigation
- System-level "Reduce motion" on macOS & iOS
- WAVE automated checks
Report a barrier
If something on this site is not usable for you, I want to know. Email robinzjephthah@gmail.com with a short description of what happened, what you expected, and (if you can) which page and which assistive technology you were using. I'll respond within a few working days.
Last updated April 2026.