Skip to content
Riley Winfred.
All writing

Accessibility & Product Building

I Audited My Own Portfolio Site for Accessibility. Here’s How I Did It Using an AI Agent.

A text-based AI audit uncovered a resume without structure, a skip link that did not really skip, and two small link improvements. Here is what changed, why, and how it was checked.

Riley Winfred5 min read

Paper-cut illustration of a structured document, a browser link outlined in blue, Tab and Enter arrow keys, and a text conversation with an AI agent.

A few years ago, I helped lead accessibility improvements across six Fandango brands. We worked through keyboard navigation challenges, collaborated with accessibility auditors, and introduced testing practices to make our checkout experiences more usable for everyone.

When I recently built my own portfolio website, accessibility was naturally something I had in mind.

But there's a big difference between thinking about accessibility and actually testing for it.

I decided to put my new website, rileywinfred.com, to the test.

Getting a second set of eyes (with AI)

I used Instinct AI, a text message-based AI agent, to conduct an accessibility audit against WCAG 2.0 standards.

The audit covered seven pages: my homepage, blog, first article, and four project case studies. It also examined my downloadable resume PDF.

Instinct tested things like keyboard navigation, heading structure, image descriptions, color contrast, and screen-reader-related markup. It also interacted with the website in Chrome rather than relying exclusively on static code analysis.

The results were encouraging! Most of the site was in good shape.

No missing image descriptions, skipped heading levels, keyboard traps, or contrast failures in the desktop samples.

But the audit also uncovered two meaningful accessibility issues and a couple of smaller improvements I hadn't caught myself.

And one of those issues was hiding in plain sight.

My resume looked accessible. It wasn't.

The most significant finding was my resume PDF.

Visually, everything looked fine. The text was selectable, the layout was clean, and the headings and bullet points were easy to distinguish.

But the PDF lacked accessibility tags.

Those tags give assistive technologies information about a document's structure, including which text is a heading, which content belongs to a list, and what order everything should be read in.

Without them, a document that looks perfectly organized to a sighted reader can be much more difficult to navigate with a screen reader.

I used Lovable to address the issue by adding semantic structure to the PDF, setting its document title and language, and preserving the original content and layout.

We even compared both pages before and after the update at the pixel level to confirm that the visual presentation hadn't changed.

I also added something I probably should have included from the beginning: an HTML version of my resume.

Now visitors can read it directly in their browsers without downloading or opening a PDF.

View my HTML resume

My "Skip to content" link wasn't actually skipping

This was an interesting finding because it illustrates how something can exist without doing its actual job.

My website already had a "Skip to content" link, which allows keyboard users to bypass repetitive navigation and jump directly into the page.

Or at least, that's what it was supposed to do.

Instinct discovered that activating the link scrolled the page to the main content, but didn't reliably move keyboard focus there.

So someone using a keyboard could press Enter to skip the navigation, only to find themselves tabbing through that same navigation again.

Not exactly helpful. 😅

The fix was small: adding tabindex="-1" to the main content element so it could receive programmatic focus.

After the update, follow-up keyboard testing confirmed the link actually moved focus into the content across all seven original pages.

A single HTML attribute made the difference between a feature that looked accessible and one that behaved as intended.

A couple of smaller improvements

The audit also found two minor opportunities.

First, some of my external links opened in new tabs without warning visitors. I updated the accessible link descriptions to announce that behavior and added appropriate security attributes.

Second, my contact section displayed my email address as plain text, even though there was an "Email Me" button nearby.

Making the address itself clickable was an easy improvement for people navigating by keyboard, voice control, or other assistive technologies.

Neither required a major redesign. They were small changes that made the site more predictable and easier to use.

AI found the problems. Testing helped verify the fixes.

After reviewing the audit, I brought its findings into Lovable to implement the updates.

But I didn't want to assume that generating a fix meant the problem was actually solved.

Follow-up checks included keyboard navigation, focus behavior, link accessibility, mobile menu interactions, and the structure and visual consistency of the updated PDF.

There are still limitations. I haven't completed a comprehensive screen-reader audit using NVDA or VoiceOver, and the PDF hasn't undergone a full manual Acrobat accessibility review.

So I'm not claiming the website is perfectly accessible or fully WCAG compliant (version 2.2 updates are backlogged for now).

What I can say is that we identified specific barriers, made targeted improvements, and collected evidence that those improvements worked.

The lesson: accessibility is about behavior, not appearances

This experience reminded me of something I learned working on accessibility at Fandango: you can't always tell whether a product is accessible just by looking at it.

A PDF can look beautifully formatted while lacking the structure a screen reader needs.

A skip link can be visible and clickable without truly helping someone navigate.

And a website can appear polished while still creating unnecessary friction for some of its visitors.

What I enjoyed about this process was how AI helped accelerate the work. Instinct identified issues I might have overlooked, Lovable helped implement the changes, and verification gave me greater confidence in the results.

My portfolio is a work in progress, just like the products I've built throughout my career. This initial automated test and update was a useful reminder that building something is only part of the job. Making sure it actually works for the people using it is just as important.