Skip to content

Accessibility & ethics

A commitment to inclusive design and ethical practice

Website accessibility

I want anyone to be able to read this site and get in touch, whatever they are using to do it. Below is what that has meant in practice, stated specifically enough that you can hold me to it, followed by the limits of that work.

What I have done

A typeface chosen for legibility

Body text across the site is set in Atkinson Hyperlegible, drawn by the Braille Institute so that easily-confused characters stay distinct: b and d, p and q, capital I against lowercase l against the numeral 1, capital O against zero. Headings use a separate display face with ligatures switched off, so pairs like fi and fl never collapse into a single decorative glyph.

Spacing and line breaks set once, site-wide

Body copy runs at a 1.6 line height, stays left-aligned rather than justified, and breaks to avoid stranding a single word on its own line. Headings balance their line lengths. All of it lives in the stylesheet rather than on individual pages, so a new page cannot quietly lose it. Research on dyslexia is consistent that spacing, size, and line height do more for legibility than any particular typeface, which is why this layer matters more than the font choice above it.

Keyboard operation and page structure

A skip-to-content link is the first thing the keyboard reaches on every page, so you can jump straight past the navigation. Each page has one main region, headings run in order, the current page is marked for assistive technology in the navigation, and the mobile menu button reports whether it is open and which menu it controls.

The contact form is labeled, and it announces itself

Every field carries an identifier tied to its visible label, so a screen reader reads the right name for the right box. Results are announced rather than shown silently: an error interrupts, a success message waits its turn. Fields replace the browser's default focus outline with a visible blue ring rather than removing it and leaving nothing behind.

Motion is optional, and fully off when you ask for it

If your operating system is set to reduce motion, this site honors it. Scroll reveals, hover lifts, navigation underlines, the page-transition fade, the counting statistics, and the theme crossfade all stop, and the smooth-scrolling layer never starts at all. The animated backdrop on the home page draws a single static frame instead, and it carries a pause button for anyone who wants it stopped without changing a system setting.

It works with JavaScript blocked or broken

Content is visible without JavaScript. The reveal animations arm their hidden start state only once scripting is confirmed active, so a blocked script or a failed load leaves you with a fully readable page rather than a blank one.

Images and decoration are handled deliberately

The few photographs on the site each carry alt text. Decoration is hidden from assistive technology instead of being announced as a meaningless image: the animated backdrop, the reading-progress bar, and inline icons are all marked as decorative. Animated statistics expose their finished value as a label, and links that open a new tab say so.

The one data graphic does not depend on color

The adoption scorecard on the proof-of-value teardown is the site's only chart, and color carries none of its meaning on its own. Every bar prints its own percentage as text, every heat-map cell prints its own value, and the heat map is built as a real table with manager rows and week columns rather than a grid of colored boxes, so a screen reader can read it by row and by column. The caption states in words what the chart shows, including its numbers, and states that the figures are illustrative rather than a real client's. It is drawn in the page's own markup, so it scales with your text size instead of blurring the way a screenshot would.

Color contrast is measured, and the measurement caught a real problem

In July 2026 this site's palette was reviewed rather than assumed, and the review found a genuine defect. The green used for text measured 3.30:1 against white, too low for body text at normal size. It was darkened to a shade measuring 5.02:1, and the lighter green was kept only for backgrounds and borders. Muted gray body text in light mode renders at near-black for the same reason. What that review did not cover is in the next section.

What I have not done

An accessibility statement that lists only strengths is marketing. These are the real limits of the work above.

  • No independent accessibility audit has been performed on this site. The July 2026 review was my own, run against my own code. No outside expert and no assistive-technology user has evaluated it.
  • There is no automated accessibility check in the build. The lint and build commands prove the site compiles, not that it is usable. An automated audit pass sits on the backlog, unrun.
  • Contrast was measured for the colors that review flagged, not across the whole palette, and the dark theme has not been measured the same way.
  • I have not tested every page against every combination of screen reader, browser, and operating system.
  • This site changes, and new work can introduce new barriers. Nothing above is a permanent guarantee.
  • I do not claim conformance with any level of the Web Content Accessibility Guidelines (WCAG). The work described above is real; the formal evaluation a conformance claim requires has not been done.

If something here does not work for you

Tell me. A specific report is far more useful than a general one: the page, what you were trying to do, and what you were using to do it (a screen reader, keyboard only, a magnifier, voice control) is enough for me to reproduce it. I will tell you what I find and what I intend to do about it, including when the honest answer is that a fix will take a while.

If a barrier on this site is stopping you from reaching me, that is my problem to solve, never a workaround you should have to find. The contact page carries a message form, a direct LinkedIn route, and a scheduling link, so use whichever one is easiest for you.

This statement was last reviewed on 22 August 2026, when every measure above was re-checked against the code and the data-handling section below was corrected. It describes the site as built on that date, and it is revised when the site changes rather than on a schedule.

Diversity, equity, and inclusion

DEI isn't just a topic to write about. It's an operating commitment.

Inclusive hiring & partnerships

Active partnership with diverse vendors, collaborators, and platforms. Networks reflect the diversity advocated for in the organizations I work with.

Transparent collaboration

Plain-language scoping. No hidden assumptions baked in. Equity starts with clarity on what is in and out of scope before the work begins.

Language & representation

Inclusive language throughout. Examples and case studies represent diverse organizations and leadership backgrounds.

Data & privacy

Naming what runs is worth more than promising it is harmless, so here is what runs.

  • Two measurement scripts run, both from the host. Vercel Web Analytics records page views and referrers, and Vercel Speed Insights records page-load timings. Those timings are the measurement behind this site's own performance claims, so removing them would mean asserting speed without measuring it. This site sets no cookies of its own, and there is no advertising network, no session recorder, and no cross-site tracker on any page.
  • The contact form does pass through a third party. Saying otherwise would be false, so: a submitted message goes to Resend, an email delivery service, which sends it to my inbox and sends you a confirmation. There is no database on this site and nothing is stored here after the message is handed off. If you would rather not route a message through a vendor at all, the LinkedIn and scheduling links on the contact page reach me without touching the form.
  • No harvesting, no list, no sequence. Writing to me does not subscribe you to anything. There is no mailing list fed by this form, no marketing sequence behind it, and no address collected here is sold, rented, or shared for marketing.
  • The collection is the form, and nothing else. A name, an email address, an optional organization, and a message. That is the entire set, it exists so a reply can reach you, and the form refuses submissions that exceed its length limits rather than quietly truncating what you wrote.

AI & transparent practice

This website was built with AI assistance. Full transparency on the why and how: responsible use of emerging tools requires it.

How AI is used here: Claude assists with code generation, content structuring, and iteration speed. Human judgment, strategy, and ethics remain central. AI is a tool that amplifies capability, not a replacement for critical thinking or accountability.

An ethical framework

Integrity first

Direct words over easy ones. When something isn't right, it gets named.

People first

Technology and metrics serve people, not the other way around. Growth shouldn't sacrifice humanity.

Accountability

Ownership of the work and its impact. If something doesn't work, we fix it together.

Continuous learning

No claim to having all the answers. Listening, learning, and adjusting are the operating mode.

See these values in action

Ethics and accessibility aren't just principles: they're woven into the strategic approach to workforce transformation.

See the approach

or reach out with questions →