Muhammad SharjeelSenior Software Engineer

Islamabad · --:--:--


What Is Accessible Design and Why It Matters

Accessibility isn’t a nice-to-have. It’s a necessity. Here's why accessible design matters — and how to get it right in your UI and frontend code.

Accessible design refers to the practice of building digital interfaces that everyone can use — regardless of ability, device, or context. It includes everything from making sure your site works well with screen readers to ensuring users can navigate via keyboard or understand visuals with limited color perception.

It’s not just about compliance — it’s about inclusivity. A well-designed app should never leave someone behind because of a visual, auditory, cognitive, or motor limitation.

Why Accessibility Matters

According to the World Health Organization, over 1 billion people — about 15% of the global population — live with some form of disability. And yet, a surprising number of websites and applications still exclude these users, either unintentionally or through neglect of basic accessibility practices.

Designing with accessibility in mind benefits everyone. For example:

  • Captions help not just the deaf, but users in noisy environments.
  • High-contrast text benefits users with vision loss — and those using devices outdoors.
  • Keyboard navigation isn’t just for accessibility — it enhances productivity for power users.

Core Principles of Accessible UI Design

Here are some of the most important foundations of an accessible interface:

Semantic HTML

Always use the right element for the job. A button should be a <button>, not a styled <div>. Use headings to create a content hierarchy (<h1> - <h6>), use lists appropriately, and label form inputs with <label> tags.

Keyboard Accessibility

All interactive elements — buttons, forms, links, menus — should be reachable and operable using only the keyboard. Use tabIndex responsibly and ensure that focus states are visible.

Screen Reader Support

Use ARIA attributes wisely to add context where semantic HTML isn’t enough. For example:

<button aria-label="Close modal">&times;</button>

Screen readers translate visual cues into audio for blind users — but only if the code provides enough semantic detail.

Color Contrast

Text should have enough contrast against the background to remain legible for people with low vision or color blindness. Tools like WebAIM Contrast Checker help you meet the WCAG (Web Content Accessibility Guidelines) minimum of a 4.5:1 contrast ratio for normal text.

Alt Text for Images

Decorative images should be marked with empty alt="" attributes. Informative images should describe what’s essential. For example:

<img src="team-photo.jpg" alt="Our design team collaborating on wireframes" />

Tips for Making Your UI More Accessible

  • Use semantic HTML as the first line of accessibility support.
  • Test with screen readers like VoiceOver (macOS) or NVDA (Windows).
  • Ensure keyboard-only navigation works throughout your site or app.
  • Follow WCAG guidelines — especially WCAG 2.1 Level AA, which most standards use as a baseline.
  • Label your inputs clearly, and use descriptive aria-label or aria-labelledby where necessary.
  • Don’t rely solely on color to convey meaning. Add text or icons to clarify status or messages.

Accessibility Is Not a Feature — It's a Foundation

Accessibility is not something to be tacked on at the end of a project. It needs to be part of your development and design process from the beginning. The more you embed these principles early on, the easier they are to maintain — and the more welcoming your product becomes to a broader audience.

Inaccessible interfaces aren’t just bad design — they’re broken experiences for the people who need them most.

Resources to Learn More

Start small — fix one accessibility issue at a time. Every improvement makes your app better, more inclusive, and more impactful.

esc
HomeThe hero, the system map and selected workPageWorkAll 6 projects, each with a glimpse of its interfacePageAboutExperience, how I work and the stack I usePageWriting12 posts on engineering, AI and designPageGet in touchContact me by email or hire me on UpworkSection
Alara CodeTurns a client brief into a complete, human-approved software delivery pack.ProjectPolyXIdentity, tenancy and access platform shared by every product in the company.ProjectPolyX SDKTypeScript auth SDK on npm that puts the platform behind one typed client.ProjectAlara SpaceMulti-tenant team wiki that AI agents can read and write through MCP.ProjectAlara PlanProject tracker with AI meeting minutes, support intake and an MCP server.ProjectODINOmni-channel customer engagement platform on a microservices backend.Project
A portfolio that builds itself while you scrollThis site starts as a blank canvas and a swarm of cursors draws it in front of you. Here is why I wanted that, what it is made of, and everything that went wrong on the way.8 min readUnslopping AI output with nothing but a skillYou do not need a better model to get rid of the purple gradients. You need your taste written down as a skill the agent loads before it touches the screen.2 min readAI Assistant Coding vs Vibe CodingAs AI becomes ubiquitous in software development, a dangerous pattern is emerging: developers blindly accepting AI suggestions without understanding the code. This 'vibe coding' approach undermines the fundamentals of being a developer. Here's why understanding code matters more than shipping it, and how to use AI as a proper assistant.8 min readHosting Multiple Domains on One Server with Docker, NGINX & SSL (DevOps for Developers)As a full-stack developer, I recently had to deploy multiple backend services on one server, each with its own domain and SSL certificate. Here's how I combined Docker, NGINX, and Certbot to build a scalable, production-grade setup — without needing a dedicated DevOps engineer.3 min readTaming CORS in a Microservices Monorepo: From Async Validation to a Unified ConfigCORS errors can be frustrating, especially in a microservices monorepo setup. This blog dives into what CORS really is, why it matters, and how I solved the CORS challenge using a shared JSON config file — establishing a single source of truth for all services.4 min readDebugging Tips for Frontend Developers (React + Next.js)Effective debugging is one of the most valuable skills for frontend developers. Here's a practical guide to debugging with logs, using the debugger keyword, troubleshooting APIs, and improving performance — with a special focus on React and Next.js.3 min readIs the ‘AI Developer’ a Threat to Jobs – or a Marketing Stunt?AI dev tools are booming — but are they replacing developers or just reshaping workflows? Here's the balanced view.3 min readUsing Docker & NGINX to Build a Suite of MicroservicesExplore how to use Docker and NGINX to containerize and orchestrate a scalable microservices suite. Includes setup tips, architecture advice, and real-world tradeoffs.3 min readGetting Started with Next.js: Structure, Tips & DeploymentA developer-friendly introduction to Next.js — learn how to scaffold projects, understand folder structure, configure features, and deploy to Vercel seamlessly.3 min readGrid Systems: The Foundation of Great UI DesignWant cleaner, more balanced layouts? A grid system brings structure, rhythm, and clarity to your UI — and Tailwind makes it easier than ever to implement.2 min readUsing Generative AI to Speed Up Creative and Dev WorkflowsFrom ChatGPT to v0.dev — here's how generative AI helps streamline UI design, prototyping, coding, and problem-solving in modern workflows.3 min readWhat Is Accessible Design and Why It MattersAccessibility isn’t a nice-to-have. It’s a necessity. Here's why accessible design matters — and how to get it right in your UI and frontend code.3 min read
GitHubgithub.com/isharjeelddNew tabLinkedInlinkedin.com/in/muhammad-sharjeel-254a48108New tabUpworkHire me for freelance workNew tab