DEV Community

Cover image for What Working on Web Accessibility Taught Me (The Fun, the Frustration, and the Click)
SANKET PATIL
SANKET PATIL

Posted on

What Working on Web Accessibility Taught Me (The Fun, the Frustration, and the Click)

Web accessibility is one of those things most of us know is important - but don’t fully understand until we experience our own application from a completely different perspective.

Recently, I spent time working on an accessibility-focused proof of concept where I audited and improved a web module using WCAG 2.1 AA guidelines. What started as a technical exercise quickly became one of the most eye-opening development experiences I’ve had.

It was fun.

It was frustrating.

And eventually - it clicked.

In this post, I want to share what I learned while working through accessibility challenges and why it changed how I think about building web applications.


🎯 Why I Took an Accessibility-First Approach

Accessibility is often treated as a final checklist item — something you verify before release. I wanted to try a different approach: treat accessibility as a non-negotiable constraint from the start, similar to performance or security.

Instead of just scanning for issues, I tried to:

  • Audit UI components against WCAG guidelines
  • Fix problems at the component and system level
  • Verify fixes using real assistive technologies
  • Avoid “ARIA band-aids” and focus on proper semantics

That shift alone changed how I approached UI development.


⌨️ The First Reality Check: Keyboard-Only Navigation

The first thing I did was simple: I stopped using my mouse.

And immediately, I started noticing problems.

Things that felt completely fine visually became difficult to use:

  • Expandable rows that weren’t keyboard reachable
  • Buttons that had no visible focus state
  • Dialogs that opened but didn’t guide keyboard focus
  • UI flows that assumed users could see everything

Keyboard-only testing quickly exposes whether your UI is navigable, not just visually functional.


🔊 Screen Reader Testing: The Most Humbling Part

I then tested the application using a screen reader (NVDA).

That experience completely changed my perspective.

Some common issues I discovered:

  • Icon-only buttons announced as just “button”
  • Tables that lacked context or structure
  • Dynamic notifications that weren’t announced at all
  • Complex forms that were difficult to understand without visual grouping

Technically, nothing was broken.

But the experience was exhausting and confusing.

That’s when I realized:

👉 Accessibility problems don’t always block users — they often just make tasks unnecessarily difficult.


🧩 Accessibility Issues Are Usually Systemic

One of the biggest surprises during the audit was how many accessibility problems were repeated across components.

Examples included:

  • Icon buttons missing accessible names
  • Status messages not announced to assistive technologies
  • Missing focus management after dynamic UI changes
  • Animations ignoring reduced motion preferences

These weren’t page-specific bugs.

They were component-level patterns.

Fixing them once improved accessibility across multiple parts of the application.

Accessibility isn’t just about screens — it’s about shared UI primitives.


🤔 The Most Interesting Challenge: When a Table Isn’t Really a Table

One interface I worked on visually resembled a table but behaved more like a dynamic form where users could add and edit rows.

Initially, it used generic layout containers styled like a grid. Visually, it worked well. Semantically, it was confusing for assistive technologies.

I had to step back and ask:

  • Is this data display or data entry?
  • Should users navigate rows or form inputs?
  • What interaction model best matches user expectations?

Instead of forcing ARIA roles onto the layout, I switched to a more semantic structure using list and fieldset patterns. The visual design stayed the same, but the interaction became far clearer for screen readers and keyboard users.

That experience reinforced an important lesson:

👉 Accessibility is often solved through better structure, not more attributes.


🧠 How Accessibility Changes Your Development Mindset

After working through accessibility improvements, I started noticing things I previously ignored:

  • Where keyboard focus moves after actions
  • Whether UI updates are announced or silent
  • How clearly components communicate purpose
  • Whether interactions are predictable or surprising

Accessibility forces you to think beyond visuals and focus on user experience flow.


📚 Lessons I’m Taking Forward

Accessibility Is Experiential

Reading guidelines helps, but testing with real assistive tools reveals the actual user experience.


Most Accessibility Issues Aren’t Technically Complex

They’re often small structural or semantic improvements that simply require awareness.


Design Decisions Matter More Than ARIA Fixes

If the interaction model is wrong, ARIA rarely saves it. Starting with semantic HTML usually leads to better outcomes.


Accessibility Improves UX for Everyone

Clear focus states, predictable navigation, and meaningful feedback benefit all users, not just those using assistive technologies.


🏁 Closing Thoughts

Working on accessibility was genuinely fun — and occasionally frustrating in a productive way.

Fun because solving these problems feels impactful.

Frustrating because it reveals how easily users can be excluded without anyone noticing.

But once accessibility clicks, it becomes impossible to ignore.

If you’ve never tried using your application without a mouse or with a screen reader, I highly recommend it. You’ll likely learn more in 30 minutes than from reading documentation alone.

Here’s to building applications that work — for everyone 🚀


Top comments (0)