dan dragon

Accessibility statement

I'm an IAAP-certified accessibility professional (CPWA), so it would be a poor look if my own site were hard to use. This page says what I've actually built into it, how I check it, and where it still falls short. I'd rather be specific and honest than claim a clean bill of health.

Conformance target

I build and maintain this site against WCAG 2.2 Level AA, and I go to Level AAA where it's practical — text contrast is the clearest example. This is a self-assessment, not a certified or third-party-audited conformance claim.

What the site does

  • Contrast measured, not guessed. The color tokens are fixed values with recorded ratios: body text is 15.1:1 in the light theme and 14.7:1 in the dark theme, secondary text is 7.7:1 and 8.6:1, and links are 7.2:1 and 10:1 — all past the 7:1 AAA threshold for body text. The brand teal is bright, so it's restricted to large text and decoration.
  • Never color on its own. Links are underlined as well as colored, and the current page in the main navigation is marked with aria-current and a text marker, not just a color change.
  • Keyboard first. Everything interactive is a real link or button. ASkip to main content link is the first thing in the tab order, and a global focus-visible outline draws a 2px accent ring around whatever has focus — nothing on this site removes it.
  • Semantic landmarks. Each page is a banner header, a labeled main navigation, a single main region that the skip link targets, and a footer. Sections are grouped with headings that are actually associated with them, and each page has exactly one h1 with no skipped levels below it.
  • Light and dark themes. The site follows your operating system preference by default and sets color-scheme to match, so form controls and scrollbars follow the theme too. The toggle in the header is a real button that reports its state witharia-pressed and remembers your choice.
  • Reduced motion respected. There's very little movement here to begin with, and a prefers-reduced-motion rule clamps animation, transition, and smooth scrolling site-wide when your system asks for less motion.
  • Links that make sense out of context. Link text describes where it goes, and links to files say so, with format and size — for example(PDF, 774 KB) on the certifications page.
  • Text that behaves. The layout is built in relative units so it survives zoom and enlarged browser text, decorative images carry empty alt text and are hidden from assistive technology, and the page language is declared.

How I test this site

Manual keyboard walkthroughs of every page, screen-reader review of the pages I change, and automated accessibility checks in browser developer tools as I build. Contrast ratios are calculated when a colour token is introduced or changed, and recorded next to the token in the stylesheet so the next person doesn't have to take my word for it.

There has been no formal third-party audit of this site, and I'm not going to imply otherwise. Automated tools catch a minority of issues; the manual pass is the part I trust, and it's still one person's pass.

Known limitations

  • The PDFs. The PDF files linked from the certifications page are documents as issued by IAAP and Salesforce. I can't edit them, and they may not be properly tagged or reliable with a screen reader. The same information — credential and issuer — is in the page text, and the verification links go to the issuers' own pages.
  • Pages I don't control. Credential verification links lead to Credly, Microsoft Learn, and Salesforce Trailblazer, and my contact links lead to GitHub and LinkedIn. Those sites' accessibility is theirs, not mine.
  • The theme toggle needs JavaScript. With scripting disabled the site renders in the light theme and stays fully readable and navigable, but the toggle won't do anything and the site won't follow a dark system preference.
  • Coverage is uneven. I review pages most carefully when I touch them. Older posts and pages get less attention than the ones I've edited recently.

Found a barrier? Tell me

If something here doesn't work for you, I want to know — it's a bug, and I'll treat it like one. Tell me what page you were on, what you were trying to do, and what happened; if you know your browser and assistive technology, that helps, but don't let it stop you from reporting.

Statement last reviewed .