216digital.
Web Accessibility

Phase 1
Web Remediation for Lawsuit Settlement & Prevention


Phase 2
Real-World Accessibility


a11y.Radar
Ongoing Monitoring and Maintenance


Consultation & Training

Is Your Website Vulnerable to Frivolous Lawsuits?
Get a Free Web Accessibility Audit to Learn Where You Stand
Find Out Today!

Web Design & Development

Marketing

PPC Management
Google & Social Media Ads


Professional SEO
Increase Organic Search Strength

Interested in Marketing?
Speak to an Expert about marketing opportunities for your brand to cultivate support and growth online.
Contact Us

About

Blog

Contact Us
  • Accessibility Testing: Prioritize Fixes That Truly Matter

    Accessibility can feel like an overwhelming mountain to climb. Every round of accessibility testing uncovers new problems—some obvious, others hidden deep in the code or design. Where do you start when everything seems important? What if you tackle the wrong issue first, leaving users still stuck?

    These questions are important, and the answers can transform how your website serves all visitors. This guide isn’t just about fixing problems—it’s about focusing your efforts where they matter most. By exploring WebAIM’s four-level severity framework, you’ll learn how to prioritize issues effectively and make meaningful progress toward an inclusive website. Let’s dive in and figure this out together.

    WebAIM’s Four-Level Severity Framework

    WebAIM (Web Accessibility in Mind) categorizes accessibility issues into four levels of severity based on their impact on users. These categories help prioritize fixes by focusing on barriers that significantly affect user experience and access.

    Critical Issues

    Critical issues completely block users from accessing specific parts of your website or performing essential tasks. Addressing these issues should be the highest priority. Examples include:

    • Interactive elements, such as buttons or form inputs, that cannot be reached or activated using a keyboard.
    • Videos without captions, which exclude users who are deaf or hard of hearing.
    • Content that flashes or strobes in a way that could cause seizures for individuals with photosensitive epilepsy.

    To prevent these barriers, developers should prioritize using accessible, native HTML elements and perform thorough accessibility testing, including keyboard and screen reader evaluations, during the development process.

    Significant Issues

    Significant issues do not entirely block access but make interacting with the website cumbersome or frustrating for users. Examples include:

    • Missing visual focus indicators, which make it challenging for keyboard users to identify the currently focused element.
    • Poor color contrast that makes text difficult to read for users with visual impairments.

    These issues disrupt the user experience and should be addressed soon after critical issues to enhance accessibility.

    Moderate Issues

    Moderate issues require users to expend unnecessary effort or time to navigate and interact with web content but do not entirely impede access. Examples include:

    • Lack of properly structured semantic HTML, such as headings and regions, which slows navigation for screen reader users.
    • Generic or vague  descriptive link text (e.g., “Click here”) that fails to describe the destination or action clearly.
    • Animations that lack user controls, making it difficult for some users to focus on other content.

    Comprehensive accessibility testing ensures these moderate issues are identified and addressed to improve usability for all users.

    Minor Issues

    Minor issues do not create significant barriers but contribute to a polished and professional user experience when resolved. Examples include:

    • Slight inconsistencies in focus styles for keyboard navigation.
    • Overuse of ARIA attributes, such as redundant tabindex values on elements that are already focusable.

    While not urgent, fixing minor issues during routine updates demonstrates attention to detail and commitment to accessibility best practices.

    Step-by-Step Guide to Prioritizing Accessibility Fixes

    Feeling unsure where to start? Don’t worry—you’re not alone. Here’s a simple plan to categorize and tackle accessibility issues step by step:

    1. Conduct a Comprehensive Accessibility Audit

    Begin by testing your site with tools like  WAVE and Lighthouse. Then, complement these results with manual testing—navigate your site with a keyboard, try a screen reader, and zoom your browser window. Automated tools catch many issues, but hands-on testing uncovers usability challenges they miss.

    2. Categorize Issues by Severity

    Use WebAIM’s framework to prioritize fixes:

    • Critical issues should top your list, as they directly prevent access.
    • Serious issues come next, addressing significant usability gaps.
    • Moderate and minor issues can be grouped for later phases.

    A structured approach to accessibility testing ensures the most pressing barriers are resolved first.

    3. Consider the Impact on Your Audience

    Think about how each issue affects your users. For example, missing alt text on product images affects a wide audience and should take precedence. If you have user feedback, use it to identify pain points that need urgent attention.

    4. Focus on High-Traffic and High-Value Pages

    Start your efforts where they’ll have the greatest impact:

    • Homepage and landing pages.
    • Key interaction points like forms or checkout pages.
    • Frequently accessed resources such as blogs or FAQs.

    By targeting these areas during accessibility testing, you ensure that the improvements benefit the largest number of users.

    5. Use a Phased Approach for Moderate and Minor Issues

    After resolving critical and serious issues, create a plan for tackling moderate and minor ones. For instance:

    • Update heading structures during new content creation.
    • Fix descriptive link text during routine content reviews.

    Breaking these tasks into smaller phases makes the process manageable and less overwhelming.

    6. Test and Retest

    After making fixes, conduct accessibility testing again. If possible, involve users with disabilities to confirm your solutions work in real-world scenarios. Their feedback is invaluable and can guide future improvements.

    Tools and Techniques for Effective Accessibility Testing

    A good mix of tools and techniques ensures you catch both technical and usability issues. Here’s what to try:

    • Automated Tools: WAVE and Lighthouse are great for spotting common errors.
    • Manual Testing: Use a keyboard or screen reader to experience your site like some users do.
    • Color Contrast Checkers: WebAIM’s Contrast Checker ensures text is easy to read.
    • User Testing: Working with people who have disabilities provides first hand insights.

    Why Prioritization Matters

    Prioritizing fixes has clear benefits:

    • Faster Results: You can address critical barriers quickly and make your site accessible sooner.
    • Better Use of Resources: Time and budget go toward solving high-impact problems.
    • Happier Users: Fixing severe issues first improves usability for everyone.

    Taking things one step at a time, with regular accessibility testing, makes the process less overwhelming and helps you steadily improve your site.

    Final Thoughts

    Accessibility can feel like a big undertaking, but it doesn’t have to be. By focusing on the most critical barriers first and conducting consistent accessibility testing, you can make real progress without burning out. Accessibility isn’t a one-time project—it’s an ongoing commitment to creating a better digital experience for all.

    Imagine how many more people could enjoy your site if it were accessible to everyone. Whether you’re a developer, IT director, or content creator, each step you take helps make the web a more inclusive place.

    And you don’t have to do it alone. 216digital is here to help. From audits to ongoing accessibility testing and monitoring, we’ll guide you every step of the way. Together, we can create a website that’s user-friendly, inclusive, and aligned with the latest standards. Schedule your consultation today, and let’s get started making your site the best it can be!

    Greg McNeil

    January 21, 2025
    How-to Guides
    Accessibility, Accessibility testing, automated testing, How-to, WebAIM, Website Accessibility
  • Accessibility in JavaScript: A Developer’s Guide

    JavaScript has revolutionized web development, enabling developers to create interactive and dynamic websites. However, these enhancements can also introduce significant accessibility barriers if not implemented thoughtfully. For web developers and eCommerce managers, ensuring that JavaScript-powered features are accessible isn’t just about compliance—it’s about creating an inclusive experience for all users.

    This guide explores the essential techniques, testing methods, and best practices to ensure that JavaScript features meet accessibility standards and improve usability for everyone.

    Why Accessibility in JavaScript Matters

    Interactive JavaScript elements, such as modals, dropdown menus, and dynamic content updates, can be challenging for users with disabilities. Poorly implemented JavaScript can break keyboard navigation, confuse screen readers, or cause focus management issues, creating barriers that exclude a portion of your audience.

    By prioritizing accessibility, developers can:

    • Meet Web Content Accessibility Guidelines (WCAG).
    • Improve user experience for everyone, including users with disabilities.
    • Reduce the risk of legal action related to accessibility non-compliance.
    • Expand your website’s audience and customer base.

    Common Accessibility Barriers in JavaScript

    Before diving into solutions, let’s examine some common accessibility pitfalls associated with JavaScript:

    1. Keyboard Inaccessibility: Many JavaScript features rely on mouse interactions, neglecting users who navigate with a keyboard.
    2. Focus Management Issues: Improper handling of focus can disorient users, especially when triggering modals, popups, or dynamic content.
    3. Unlabeled ARIA Roles: Dynamic elements without proper ARIA roles and attributes can confuse screen readers.
    4. Non-Compliant Custom Widgets: Custom components like sliders, tabs, or accordions often fail to replicate the functionality of their native HTML counterparts.
    5. Content Updates Without Notifications: Dynamic content changes that are not announced to assistive technologies leave users unaware of critical updates.

    Best Practices for Accessible JavaScript

    To make your JavaScript-powered features inclusive, follow these best practices:

    1. Ensure Keyboard Accessibility

    All interactive elements must be operable using only a keyboard. Consider the following:

    • Use semantic HTML elements like <button>, <a>, and <input>, which have built-in keyboard support.
    • Add tabindex= "0" to custom elements to make them focusable.
    • Avoid tabindex values greater than 0, which can disrupt the natural tabbing order.
    • Implement custom keyboard interactions for widgets like dropdowns and modals. For example, allow users to close a modal with the Escape key.

    2. Manage Focus Properly

    Focus management is critical when working with dynamic content. Here’s how to handle it:

    • Set Initial Focus: When opening a modal, move focus to the first interactive element within it.
    • Trap Focus: Prevent users from tabbing out of an open modal.
    • Restore Focus: Return focus to the triggering element when the modal is closed.
    • Avoid Focus Loss: Ensure that dynamically added content doesn’t cause focus to disappear.

    3. Use ARIA Responsibly

    Accessible Rich Internet Applications (ARIA) can enhance screen reader compatibility, but misuse can lead to confusion. Follow these guidelines:

    • Use ARIA Roles: Assign roles like role= "dialog" for modals or role= "menu" for dropdowns.
    • Add ARIA States: Use attributes like aria-expanded, aria-hidden, and aria-live to convey element states to assistive technologies.
    • Don’t Overuse ARIA: Avoid using ARIA when semantic HTML can achieve the same result.

    4. Announce Dynamic Content Updates

    For screen reader users, dynamically updated content must be announced clearly:

    • Use aria-live regions to alert users to changes in content.
    • Set the aria-live attribute to “polite” for non-urgent updates or “assertive” for critical changes.
    • Avoid excessive announcements, which can overwhelm users.

    5. Test Custom Widgets Thoroughly

    If you create custom widgets, ensure they mimic the behavior of native elements:

    • Use the WAI-ARIA Authoring Practices Guide as a reference.
    • Make widgets focusable, operable via keyboard, and compatible with screen readers.
    • Test with multiple assistive technologies and devices to ensure broad accessibility.

    Testing JavaScript for Accessibility

    Accessibility testing is an essential part of development. Use the following tools and methods to identify and address accessibility issues:

    Automated Tools

    1. Lighthouse (built into Chrome DevTools): Provides a quick audit of accessibility issues.
    2. WAVE: Highlights accessibility problems directly on your webpage.

    Manual Testing

    Automated tools can’t catch every issue, so manual testing is critical:

    • Keyboard Navigation: Ensure all interactive elements are focusable and operable with the Tab and Enter keys.
    • Screen Readers: Test your website with screen readers like NVDA, JAWS, or VoiceOver.
    • Focus Indicators: Verify that focus indicators are visible and intuitive.

    Real-World Scenarios

    Test your website with users who rely on assistive technologies. User feedback can uncover issues that developers might overlook.

    Meeting WCAG Requirements

    To comply with WCAG, focus on these key guidelines:

    Perceivable

    • Ensure text alternatives for images and icons.
    • Provide captions for video content.

    Operable

    • Make all functionality available via a keyboard.
    • Avoid content that flashes more than three times per second.

    Understandable

    • Use clear labels and instructions.
    • Ensure consistent navigation and predictable interactions.

    Robust

    • Use valid HTML and ARIA attributes to ensure compatibility with assistive technologies.

    Benefits of Accessible JavaScript

    Implementing accessible JavaScript goes beyond compliance. It delivers tangible benefits, such as:

    • Improved User Experience: Accessible features make your website easier to use for everyone.
    • Increased Market Reach: Approximately 16% of the world’s population lives with some form of disability. Accessibility ensures they can engage with your website.
    • Better SEO: Many accessibility improvements, like proper headings and alt text, also enhance search engine rankings.
    • Legal Compliance: Meeting accessibility standards helps protect your business from lawsuits and reputational damage.

    Conclusion

    It is far easier to create accessible JavaScript from the onset rather than trying to fix it as an afterthought if you are armed with the proper knowledge.

    Stay informed about evolving standards like WCAG and remain proactive in integrating accessibility into your development workflow. If you’re unsure if your JavaScript is accessible or are looking for an implementation partner who is focused on accessibility, reach out to 216digital using the contact form below.

    Greg McNeil

    January 17, 2025
    How-to Guides
    Accessibility, How-to, JavaScript, Web Accessibility, web developers, Website Accessibility
  • How to Use JAWS for Screen Reader Testing

    For millions of people with visual impairments, screen readers like Job Access With Speech (JAWS) are essential for navigating the digital world. According to a 2024 WebAIM survey, JAWS continues to lead the way as one of the most widely used screen readers, with 41% of respondents relying on it—outpacing other tools like NonVisual Desktop Access (NVDA) and Apple VoiceOver.

    If you’re focused on building an accessible digital experience, incorporating screen reader testing into your workflow is a must. Not only does it help you create a more inclusive website, but it also supports compliance with accessibility laws like the Americans with Disabilities Act (ADA), WCAG standards, and more.

    In this guide, we’ll break down how to use JAWS for accessibility testing, explore essential commands, and share tips for improving your website’s usability. But first, a quick look at what makes it such a powerful tool.

    What is JAWS?

    JAWS, developed by Freedom Scientific, is a screen reader that converts on-screen text into speech or braille for users who are blind or visually impaired. It allows users to navigate websites, applications, and documents without needing to see the screen.

    JAWS is one of the most popular screen readers globally, making it an essential tool for web accessibility testing. By simulating how users rely on assistive technologies, JAWS helps you identify barriers that may prevent someone from fully engaging with your website.

    Why is JAWS Essential for Accessibility Testing?

    Accessibility testing is about ensuring everyone, regardless of ability, can interact with your website. JAWS plays a vital role in this process because:

    • Real-World Simulation: JAWS mimics how many visually impaired users experience the web, allowing you to uncover issues that automated tools might miss.
    • WCAG Compliance: Testing with JAWS helps ensure your website complies with the Web Content Accessibility Guidelines (WCAG), a global standard for digital accessibility.
    • Improved User Experience: By identifying and fixing accessibility barriers, you create a more inclusive, user-friendly experience for all visitors.

    How to Set Up JAWS

    1. Download and Install JAWS: Visit the Freedom Scientific website to download JAWS. While it’s a paid tool, a 40-minute free demo mode is available for testing purposes.
    2. System Requirements: Ensure your computer meets the system requirements. JAWS works on Windows but does not support macOS directly.
    3. Set Up Your Environment: Use headphones to listen while testing so the screen reader’s output doesn’t interfere with other tasks.
    4. Familiarize Yourself with the Settings: Spend time exploring the settings menu to adjust speech rate, verbosity, and other preferences.

    Key JAWS Commands You Need to Know

    Learning a few essential JAWS commands will make testing faster and more effective. Here are some basics to get you started:

    • Navigating Headings: Press H to jump to the next heading and Shift + H to go to the previous heading.
    • Lists: Press L to move to the next list and I to navigate to individual list items.
    • Links: Use Tab to navigate through links or Insert + F7 to bring up a list of all links on the page.
    • Forms: Press F to jump to the next form field and Shift + F to go to the previous one.
    • Read the Page: Use Insert + Down Arrow to read the page continuously or Arrow Keys for manual reading.

    Step-by-Step Guide to Testing Web Accessibility with JAWS

    Start with the Homepage

    Open your website’s homepage and let JAWS read through it. Check if the content flows logically and whether important elements, like headings and links, are announced correctly.

    Test Navigation

    Use the Tab key to navigate through links and interactive elements. Ensure focus indicators are visible and links are descriptive (e.g., “Learn More” should specify the action or page it leads to).

    Evaluate Headings

    Press Insert + F6 to bring up a list of headings. Verify that they are hierarchical and descriptive, making it easier for users to navigate.

    Check Forms

    Navigate through form fields using the F key. Test for proper labeling, keyboard navigation, and error message announcements.

    Test Images and Alt Text

    JAWS will read the alt text of images. Ensure images have descriptive alt text and that decorative images are marked appropriately (e.g., as null or empty).

    Assess ARIA Roles and Landmarks

    Use JAWS to test ARIA roles, landmarks, and live regions. Verify that these elements provide meaningful context to screen reader users.

    Document Issues

    As you test, document any barriers you encounter, such as missing alt text, unclear link descriptions, or inaccessible forms. Include the steps to replicate the issue and suggest solutions.

    Tips for Effective JAWS Testing

    • Pair with a Keyboard-Only Test: Ensure your website is fully navigable using only a keyboard, as this is crucial for screen reader users.
    • Listen Critically: Pay attention to how JAWS announces content. Confusing or incomplete announcements signal a need for improvement.
    • Focus on User Experience: Think about how easy it would be for a JAWS user to accomplish key tasks on your website, such as making a purchase or finding contact information.
    • Test Multiple Pages: Don’t stop at the homepage. Test a variety of pages, including forms, product pages, and blogs.

    Limitations of JAWS

    While JAWS is an invaluable tool for accessibility testing, it has limitations:

    • Cost: It is expensive, which may be a barrier for smaller teams or independent developers.
    • Learning Curve: The abundance of commands and settings can be overwhelming for beginners.
    • Not a Catch-All Solution: JAWS testing alone cannot guarantee accessibility compliance. It’s essential to pair it with other tools and techniques.

    Why JAWS Should Be Paired with Other Tools

    JAWS provides critical insights, but no single tool can capture all accessibility issues. Consider pairing it with:

    • Automated Testing Tools: Tools like WAVE and Lighthouse can quickly identify common issues, such as missing alt text or low contrast.
    • Other Screen Readers: Testing with multiple screen readers, such as NVDA or VoiceOver, ensures compatibility across platforms.
    • Manual Testing: Involve users with disabilities in your testing process to gain authentic feedback.

    Building a More Inclusive Web

    Testing your website with JAWS is a powerful step toward creating an inclusive digital environment. By understanding how screen reader users interact with your content, you can uncover barriers and make meaningful improvements. Remember, accessibility is not just about compliance—it’s about creating a web that works for everyone.

    While JAWS is a fantastic tool, it should be part of a broader accessibility strategy that includes other tools, user testing, and a commitment to following WCAG guidelines. With the actionable insights from this guide, you’re well on your way to improving your website’s accessibility and making a positive impact on all your users.

    Let’s work together to make the web a more inclusive place!

    Need help with accessibility testing? If you’re ready to take your accessibility efforts to the next level, 216digital can help. Our team specializes in comprehensive accessibility solutions that go beyond surface fixes. Schedule an ADA briefing with us today by using the contact form below. Let’s work together to make your website accessible to everyone.

    Greg McNeil

    January 16, 2025
    How-to Guides, Testing & Remediation
    Accessibility testing, assistive technology, How-to, JAWS, screen readers, user testing
  • Writing Code for Web Accessibility: A Guide for Developers

    Coding often feels like speaking a secret language—it’s complex, intricate, and incredibly rewarding. Including web accessibility in your workflow isn’t about reinventing the wheel; it’s about refining your craft to ensure your work reaches everyone. Accessible code builds on the practices you already know, with small adjustments that make a significant impact. In this guide, we’ll explore actionable steps to help you create accessible, user-friendly websites that leave no user behind.

    What Is Accessible Code?

    Accessible code ensures everyone can interact with your website, regardless of ability. Following standards like the Web Content Accessibility Guidelines (WCAG) helps create an inclusive space for all users. By integrating accessibility, you’re not just meeting legal requirements but building a better, more welcoming web experience.

    Accessibility encompasses several aspects, including:

    • Visual Accessibility: Making visual content perceivable by users with visual impairments, often through tools like screen readers.
    • Interactive Usability: Ensuring interactive elements work seamlessly with keyboards, touchscreens, or voice commands.
    • Content Clarity: Structuring information logically to assist users with cognitive impairments.
    • Compatibility: Writing robust code that works with assistive technologies and adapts to future updates.

    The Four Golden Rules of Accessibility: POUR

    The foundation of accessible code is rooted in WCAG’s four guiding principles: Perceivable, Operable, Understandable, and Robust (POUR). These principles ensure your website is usable for everyone. Let’s break them down:

    • Perceivable: Users must be able to see or hear content.
      • Provide text alternatives for non-text content like images (e.g., alt text).
      • Use captions and transcripts for multimedia content.
    • Operable: Interactive elements must be usable with any input device.
      • Ensure keyboard navigation works for all features.
      • Include features like skip-to-content links to improve navigation.
    • Understandable: Content and interfaces should be easy to comprehend.
      • Label forms clearly and provide concise instructions.
      • Write meaningful error messages that guide users in resolving issues.
    • Robust: Code should be compatible with a wide range of assistive technologies.
      • Use valid, semantic HTML to ensure content is interpretable.
      • Test compatibility with assistive technologies like screen readers.

    Adhering to these principles ensures compliance with accessibility standards while enhancing usability for everyone.

    Best Practices for Writing Accessible Code

    Here’s how to apply accessibility principles to your code:

    1. Use Semantic HTML

    Semantic HTML provides structure and meaning to your content. Elements like <header>, <nav>, <main>, and <footer> improve navigation for screen readers and other assistive technologies.

    Instead of:

    <div onclick="doSomething()">Click me</div>

    Use:

    <button onclick="doSomething()">Click me</button>

    Semantic tags enhance usability and reduce the need for ARIA roles, ensuring better compatibility.

    2. Make Forms Accessible

    Forms are a common source of frustration for users with disabilities. Pair input fields with <label> tags to provide clear context:

    <label for="email">Email:</label>
    <input type="email" id="email" name="email">

    For added guidance, use aria-describedby for hints:

    <p id= "emailHint"> We'll never share your email.</p>
    <input type="email" id="email" aria-describedby="emailHint">

    Additionally:

    • Group related fields with <fieldset> and <legend>.
    • Include real-time error validation with accessible alerts.

    3. Ensure Keyboard Navigation

    Interactive elements should be operable using a keyboard. Use logical HTML structures and the tabindex attribute sparingly to create a natural focus order.

    Example:

    <button tabindex="0">Focus me</button>

    Avoid negative tabindex values unless necessary, as they can disrupt navigation.

    4. Add Alt Text to Images

    Alt text makes images accessible to screen readers. Describe the content succinctly:

    <img src= "puppy.jpg" alt= "A golden retriever puppy playing with a ball">

    If an image is decorative, use an empty alt attribute (alt= "") to skip it for screen readers.

    5. Mind Your Colors

    Color contrast impacts readability. Use tools like Contrast Checker to verify that text is legible. Avoid using color as the sole means of conveying information. For example:

    <span style="color: red;">Required field</span>

    Should also include:

    <span class="required" aria-label="Required field">*</span>

    6. Use ARIA Wisely

    Accessible Rich Internet Applications (ARIA) roles can enhance functionality but should be used sparingly. Stick to semantic HTML whenever possible. Common ARIA roles include:

    • role= "alert" for dynamic notifications.
    • aria-expanded for collapsible menus.
    • aria-live for real-time updates.

    7. Don’t Forget Multimedia

    Provide captions for videos and transcripts for audio content. Respect user preferences for reduced motion by using the prefers-reduced-motion media query:

    @media (prefers-reduced-motion: reduce) {
      animation: none;
    }

    Testing Your Accessible Code

    Even the best code needs testing. Use these methods:

    • Automated Testing: Tools like Google Lighthouse or WAVE can identify common issues.
    • Manual Testing: Navigate your site using only a keyboard or a screen reader (e.g., NVDA, VoiceOver).
    • User Testing: Get feedback from users with disabilities to uncover real-world issues.

    Testing should be an ongoing part of your development process to catch and fix issues early.

    Challenges Developers Face—and How to Overcome Them

    Challenge: Understanding WCAG Guidelines Can Be Intimidating

    Solution: Start with the essentials. Focus on foundational elements like semantic HTML, alt text, and keyboard navigation. Once these are second nature, dive deeper into more complex guidelines—one step at a time.

    Challenge: Debugging ARIA Roles Can Be Tricky

    Solution: ARIA can feel like uncharted territory, but tools like ARIA Authoring Practices and automated testing tools (e.g., Google Lighthouse or WAVE) make it manageable. Stick to semantic HTML where possible to minimize the need for custom roles.

    Challenge: Maintaining Accessibility During Updates

    Solution: Accessibility isn’t a one-and-done task; it’s an ongoing commitment. Make accessibility checks part of your QA process and leverage tools like WAVE to identify issues after every update. Document accessibility practices in your team’s workflow to keep everyone aligned.

    Challenge: Balancing Deadlines with Accessibility Goals

    Solution: Tight deadlines can pressure teams to deprioritize accessibility. Combat this by integrating accessibility from the start of a project rather than treating it as an add-on. Small, consistent efforts save time in the long run and prevent last-minute fixes.

    By acknowledging these challenges and embracing practical solutions, developers can turn obstacles into opportunities to create better, more inclusive websites.

    Keep Learning and Building Accessible Code

    Web accessibility is a continuous journey—and an exciting one. As developers, we thrive on solving problems and improving our craft, and accessibility is no different. By staying updated with trusted resources like WebAIM, MDN Web Docs, and the A11y Project, you can keep sharpening your skills and pushing the boundaries of what’s possible. Engage with communities, take courses, and embrace every opportunity to learn. Every small step you take makes the web a more inclusive place for everyone.

    Writing accessible code is about thoughtful, inclusive choices that enhance user experiences. Start with the basics, make accessibility an integral part of your workflow, and let learning drive your improvements. The impact of your efforts extends far beyond compliance; it creates meaningful connections and opens your work to all users, regardless of ability.

    Ready to take your commitment further? Schedule an ADA briefing with 216digital. Our team specializes in tailored web accessibility solutions, helping you mitigate risks and create a more inclusive online presence. Let’s build a better web—together.

    Greg McNeil

    January 9, 2025
    How-to Guides
    accessible code, ADA Compliance, How-to, WCAG, web developers, web development
  • Email Accessibility: Why It Matters for Your Marketing

    Did you know that many marketing emails are nearly impossible for some people to read? It’s true! People with disabilities, especially those who use screen readers, often struggle with text that isn’t coded properly or images that don’t have any descriptions. The good news is that email accessibility is simpler than you might think. In this article, we’ll explore why emails can be hard to read for people with disabilities, why you should care, and how you can start making changes today. Let’s dive in!

    Why Accessibility in Emails Matters

    You might be wondering, “Why should I think about email accessibility?” There are two big reasons:

    1. Reach More Readers: Accessibility helps you connect with a larger audience, which means more potential customers.
    2. It’s the Right Thing to Do: Many people rely on screen readers or special settings to read their messages, and they deserve the same great experience as everyone else.

    Plus, consider this: There are about 61 million adults in the United States alone who have disabilities, and over one million of them are blind. Emails that aren’t accessible can stop them from reading newsletters, buying products, or joining your events. By focusing on accessibility, you’re ensuring everyone can connect with you.

    The Business Case for Accessible Emails

    You might ask, “Why should I spend my time on email accessibility?” Here are three compelling reasons:

    1. Stay Legally Compliant: Laws like the Americans with Disabilities Act (ADA) may apply to online communication. Staying compliant avoids potential legal issues.
    2. Expand Your Audience: People with disabilities make up a significant group. Including them ensures your message reaches more people.
    3. Improve Content for Everyone: Accessible content benefits all users. For example, larger fonts are easier on the eyes, and descriptive link text helps people skimming emails on their phones.

    In short, email accessibility isn’t just nice to have — it’s a smart move that can boost your brand and prevent legal headaches.

    Why Marketing Emails Tend To Be Inaccessible

    Let’s be honest: emails can be tricky. Here’s why:

    • They Rely on Tables for Layout: Modern web pages use advanced CSS layouts, but many email clients don’t support them. This forces developers to use tables, which can confuse screen readers if not coded correctly.
    • Limited Support for Buttons: Real <button> elements often aren’t supported. Replacing buttons with images can create accessibility issues if the images lack descriptions.
    • Drag-and-Drop Tools Aren’t Perfect: Email builders like Mailchimp or HubSpot can generate messy or incomplete HTML code, leading to hidden accessibility problems.

    These challenges make email accessibility tricky, but don’t worry. With a few simple steps, you can overcome these issues.

    Building an Accessibility Checklist for Emails

    Here’s a simple checklist to help you make your emails more accessible:

    Template Setup (One-Time Fixes)

    1. Add role=”presentation” to Tables: This attribute tells screen readers to ignore table structure, reducing confusion.
    2. Underline Inline Links: Don’t rely on color alone to indicate links. Use underlines to make them easily identifiable.
    3. Avoid Using One Big Image as Your Email: Screen readers can’t interpret a single large image. If images are disabled, subscribers will see an empty box instead of your content.

    Campaign-Level Fixes

    1. Add Alt Text to Every Image: Alt text provides descriptions for images. Keep it brief but clear (e.g., “Model wearing a red winter jacket”).
    2. Use Semantic HTML Elements: Use <h1> for main headings, <h2> for subheadings, and <p> for paragraphs to help screen readers understand content structure.
    3. Use Descriptive Links: Replace vague link text like “Click Here” with “View our winter jackets” to provide context.

    Testing and QA for Your Accessible Emails

    How can you ensure your emails are accessible? Test them!

    Manual Testing

    Use free screen readers like NVDA (Windows) or VoiceOver (Mac) to hear how your email sounds. Listening to your email read aloud is a great way to catch problems.

    Automated Testing Tools

    Use tools like Google Lighthouse or WAVE to scan your email’s web version for issues. Publish a temporary version, get the URL, and analyze it for errors.

    A/B Testing

    Test different versions of your accessible emails to see what resonates best with your audience. Compare engagement metrics to measure the impact of accessibility.

    Accessibility Best Practices for Email Design

    Here are additional tips for email accessibility:

    1. Make It Mobile-Friendly: Ensure text, buttons, and layouts work well on smaller screens.
    2. Choose Readable Fonts and Colors: Use high contrast (e.g., black text on a white background) and avoid tiny fonts.
    3. Avoid Flashing or Moving Text: Fast-moving elements can be challenging for some users. Use animation sparingly.

    Encouraging a Culture of Accessibility

    Once you start focusing on accessibility, share your knowledge with your team:

    1. Offer Mini-Trainings: Show marketing and design teams how to add alt text or check code for issues.
    2. Collaborate with Developers: Work with your development team to address tricky code problems.
    3. Celebrate Wins: Highlight successful accessible campaigns during team meetings to encourage continued focus.

    Conclusion

    Email accessibility matters because it helps people with disabilities, grows your audience, and enhances your brand’s reputation. The best part? It doesn’t have to be complicated. With simple steps like adding alt text, using descriptive links, and making your designs mobile-friendly, you can create emails that everyone can enjoy.

    Take a moment to review your next email draft. Is there alt text? Are links descriptive? Are fonts readable? If so, you’re already ahead of many marketers. Keep going, and soon accessibility will become a natural part of your email marketing process, benefiting both your audience and your brand

    Greg McNeil

    January 3, 2025
    How-to Guides, The Benefits of Web Accessibility
    Accessibility, email accessibility, How-to, Web Accessibility, web developers
  • Making Hidden Content Accessible to Assistive Technologies

    As a web developer, you want your website to be usable by everyone, including people who rely on assistive technologies. These technologies—such as screen readers, braille displays, and speech recognition software—can help individuals with disabilities navigate the web more easily. Sometimes, you may need to hide certain parts of your webpage visually without hiding them from these tools. However, doing this incorrectly can cause big accessibility issues.

    In this article, we’ll explore how to effectively hide and manage hidden content for people using assistive technologies. We’ll discuss why display: none is problematic, how to use the clip pattern, and how attributes like aria-hidden and hidden can help. By the end, you’ll have a better understanding of how to ensure your website remains inclusive and user-friendly.

    The Problem with display: none

    When you use display: none in your CSS, you remove an element from the visual flow of the page. This means sighted users will not see it. But, it also means the element is completely invisible to assistive technologies such as screen readers. If you’ve hidden important text or controls this way, users who rely on assistive technologies might miss out on content or functionality that they need.

    For example, imagine you have a button that visually looks like an icon, but you hide the text label using display: none. Now, people who can see the icon know what the button does, but people using assistive technologies hear nothing. This creates a poor user experience and makes your site less accessible.

    The Clip Pattern: A Better Approach

    To visually hide content while keeping it available to assistive technologies, the clip pattern is a popular solution. The idea is to position the element off-screen so sighted users don’t see it, but screen readers can still find it. Here’s an example:

    .visually-hidden {
      position: absolute;
      width: 1px;
      height: 1px;
      margin: -1px;
      padding: 0;
      border: 0;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
    }

    By applying the .visually-hidden class to your element, you ensure it’s hidden visually but remains accessible to assistive technologies. This makes the content discoverable by screen readers, letting users who can’t see the screen still benefit from it.

    Why the Clip Pattern Works

    This pattern relies on moving the element so it’s not visible in the viewport and restricting its size to 1px by 1px. With clip: rect(0, 0, 0, 0); (or clip-path in modern CSS), the browser cuts off any visual display. Yet, the element remains in the Document Object Model (DOM), meaning assistive technologies can still access it. That’s the key difference between this and display: none.

    Managing Visibility with aria-hidden and the hidden Attribute

    Beyond CSS, there are HTML and ARIA (Accessible Rich Internet Applications) attributes that also control how content is shown to both users and assistive technologies. Two important attributes here are aria-hidden and the HTML5 hidden attribute.

    aria-hidden="true"

    When you add aria-hidden="true" to an element, you’re telling assistive technologies not to read or announce that element to users. This is handy for decorative images or redundant content. For instance, if you have a background image that doesn’t provide important information, you could mark it with aria-hidden="true" so screen readers ignore it.

    But be cautious: if you need an element to be read by assistive technologies, do not use aria-hidden=”true”. This attribute will block that element from being announced entirely.

    <div aria-hidden="true">
      <img src="decorative-image.jpg" alt=""/>
    </div>

    HTML5 hidden Attribute

    The hidden attribute is another way to remove content from everyone—both sighted users and assistive technologies. When you use it, browsers typically hide the element. Screen readers will also skip it. This is good if the element is meant to be inaccessible to all users, like a form section that’s not yet relevant or a menu item that’s not available.

    <div hidden>
      <p>This content is hidden from all users.</p>
    </div>

    Use hidden or aria-hidden when you truly want to exclude an element from assistive technologies. If you want it hidden visually but still available to screen readers, you should stick with the clip pattern or .visually-hidden approach.

    Best Practices for Accessible, Visually-Hidden Content

    1. Use Semantic HTML

    Using proper semantic HTML elements (like <nav> for navigation, <main> for main content, or <section> for thematic grouping) is important for clear structure. It helps assistive technologies interpret your content correctly. Semantic HTML also reduces the need for extra attributes and complex styling, since the markup itself conveys meaning.

    2. Avoid Hiding Focusable Elements

    If an element can receive focus (like links, form inputs, or buttons), think carefully before hiding it. A hidden yet focusable element can be confusing for keyboard-only users, since it might get focus without being visible. If you must hide a focusable element, consider removing it from the tab order by using tabindex="-1" or ensuring it’s properly revealed at the right time.

    For example, if you have a pop-up form that appears only after a button click, you can initially hide it with the clip pattern. Once the user clicks, you can remove the clip pattern or switch the CSS to show the content. This way, the form becomes available to both sighted users and people using assistive technologies at the same time.

    3. Provide Context for Hidden Content

    Sometimes you want to reveal hidden content dynamically (like a drop-down menu). In these cases, use ARIA attributes such as aria-expanded and aria-controls to inform assistive technologies that a certain part of the page is now visible or hidden. This can help screen reader users understand changes on the page.

    <button aria-expanded="false" aria-controls="menu" id="menuButton">
      Toggle Menu
    </button>
    
    <nav id="menu" class="visually-hidden">
      <!-- Menu items go here -->
    </nav>

    When you click the button, you can toggle its aria-expanded value from false to true, and remove the .visually-hidden class from the menu. This ensures that both visual and non-visual users know the content has been revealed.

    4. Test with Multiple Assistive Technologies

    It’s important to test your website with different assistive technologies because each one may behave slightly differently. Popular screen readers include NVDA, JAWS, and VoiceOver. Don’t forget to check on both desktop and mobile devices. Regular testing can help you catch accessibility issues before your users do.

    Handling Localization

    If you’re translating your site into multiple languages, remember that hidden text might also need translation. For example, your .visually-hidden text for instructions or links should be available to screen readers in every supported language. Make sure your language attributes (like lang="en") are correct, and consider cultural differences that could impact how you label hidden elements.

    For instance, if you have an English site and a Spanish site, your hidden instructions should be translated into Spanish on the Spanish version. This ensures that users relying on assistive technologies can access the content in the correct language.

    Putting It All Together: A Quick Example

    Let’s look at a simple example of an accessible button that has visually hidden text:

    <button class="icon-button">
      <span class="visually-hidden">Submit Form</span>
      <img src="icon-submit.png" alt="" aria-hidden="true" />
    </button>
    • The .visually-hidden class hides the text “Submit Form” from sighted users, but screen readers can still read it.
    • The <img> tag includes an empty alt attribute and aria-hidden="true", so assistive technologies ignore the image itself.
    • Sighted users see only the icon, while screen reader users hear “Submit Form.”

    This example keeps your content accessible to people using assistive technologies and also meets visual design needs.

    Additional Resources

    • Web Content Accessibility Guidelines (WCAG): A detailed guide on making web content accessible.
    • WAI-ARIA Authoring Practices: Official tips on using ARIA roles, states, and properties.
    • MDN Web Docs on ARIA: In-depth explanations of ARIA attributes and best practices.

    Exploring these resources will help you master hiding content effectively, ensuring people who use assistive technologies can still access everything they need.

    Conclusion

    Hiding content from sighted users while keeping it accessible to assistive technologies is an essential skill for modern web developers. By avoiding display: none for important information, using the clip pattern for visually hidden content, and carefully leveraging aria-hidden or hidden, you can ensure everyone has a good experience on your site.

    Remember to keep the following points in mind:

    1. Use the clip pattern (.visually-hidden) to hide content from sighted users but keep it readable by assistive technologies.
    2. Use aria-hidden and hidden only when you truly want to hide content from all users, including those using assistive technologies.
    3. Pay attention to focusable elements, making sure you don’t accidentally trap keyboard users in hidden sections.
    4. Test frequently with various tools and real users to ensure your hidden content behaves as you expect.
    5. Localize your hidden text so that people using assistive technologies in other languages can also benefit.

    By following these guidelines, you’ll be well on your way to building inclusive websites that work for everyone. Your careful attention to accessibility shows that you value all your users, regardless of their abilities or the assistive technologies they use. Embracing these practices will help ensure a positive, welcoming, and user-friendly experience across the board.

    Greg McNeil

    December 31, 2024
    How-to Guides
    Accessibility, assistive technology, How-to, web developers, web development, Website Accessibility
  • How to Make Data Tables Accessible

    Data tables are a powerful way to present structured information, but without proper attention to accessibility, they can exclude users with disabilities. Whether you’re a developer, content creator, or website owner, learning how to make your tables user-friendly for everyone is an essential skill.

    Accessibility standards like WCAG (Web Content Accessibility Guidelines) provide the foundation for creating inclusive data tables. By following best practices such as structuring your tables properly, adding meaningful headers, and ensuring compatibility with assistive technologies, you can enhance usability while meeting legal and ethical standards.

    Understanding the Basics of Accessible Tables

    Before diving into the specifics, it’s important to understand what makes a table accessible. Accessible tables are designed to be navigable and understandable by all users, including those who rely on screen readers or keyboard navigation. This means paying attention to the structure, design, and additional information like captions and summaries.

    The foundation of an accessible table lies in its structure. HTML provides semantic elements like <table>, <thead>, <tbody>, and <th> to organize your data logically. Using these elements correctly ensures that assistive technologies can interpret the table properly. For example, headers defined with <th> tags allow screen readers to associate data cells with their corresponding column or row, creating a more intuitive experience for users.

    Adding Headers, Captions, and Summaries

    Headers are one of the most critical components of an accessible table. They guide users in understanding what each data point represents. To define headers, use the <th> element, and consider including the scope attribute to indicate whether the header applies to a column, row, or group of columns and rows. For example, <th scope="col"> signals that the header applies to an entire column, while <th scope="row"> applies to a row.

    Captions and summaries provide additional context for your table. A caption, placed within the <caption> tag, serves as a brief title or description of the table’s purpose. Summaries, while not an HTML element, can be included to provide a detailed explanation of the table’s content, especially if it’s complex. This can be added through the <summary> attribute or as part of surrounding content. These elements are particularly valuable for screen reader users, offering them a quick overview of what to expect.

    Ensuring Compatibility with Screen Readers

    Screen readers rely on well-structured and semantically correct HTML to interpret tables. To optimize compatibility, avoid using tables for layout purposes. While this practice was common in the past, it confuses screen readers by mixing presentational and data tables. Instead, use CSS for layout and reserve tables strictly for data.

    Another crucial consideration is avoiding merged cells unless absolutely necessary. While colspan and rowspan attributes can be used to merge cells, they can make navigation more challenging for screen reader users. If your table requires merged cells, ensure that the relationships between headers and data are clearly defined with attributes like headers and id.

    Making Tables Keyboard-Friendly

    Keyboard accessibility is vital for users who cannot use a mouse. Accessible tables should allow users to navigate logically through rows and columns using only their keyboard. Test your table to ensure that tabbing through the data follows a predictable order.

    One way to achieve this is by maintaining a logical document flow. Keep your table simple and organized to prevent users from getting lost. If the table is part of a larger webpage, include clear instructions and use skip links to help users bypass unrelated content.

    Simplifying Complex Tables

    Complex tables with nested headers or multi-level data can be difficult to navigate, even for experienced users. Simplifying these tables can go a long way toward improving accessibility. Consider breaking down large, complicated tables into smaller, more manageable ones. You can also use additional tools like expandable rows or columns to provide details without overwhelming the user.

    For situations where simplifying isn’t feasible, invest extra effort in defining relationships between headers and data. Use the headers and id attributes to explicitly associate each cell with its relevant headers. This ensures that screen readers can convey the relationships accurately, even in intricate tables.

    Improving Readability with Responsive Design and Contrast

    Accessibility isn’t just about assistive technologies—it’s also about making content visually readable for users with low vision or cognitive challenges. Responsive design is essential for ensuring that your tables are accessible across devices. Use CSS to make your tables adapt to different screen sizes without losing clarity or functionality.

    High contrast is another key factor. Choose colors that provide sufficient contrast between text and background. WCAG recommends a contrast ratio of at least 4.5:1 for normal text and 3:1 for large text. Tools like WebAIM’s Contrast Checker can help you verify compliance.

    Testing Your Tables for Accessibility

    No matter how carefully you design your tables, testing is essential to identify and address potential issues. Start by using automated tools like the WAVE Web Accessibility Evaluation Tool to check for common errors. While these tools are helpful, they can’t catch everything, so manual testing is equally important.

    Test your table using a screen reader like NVDA or JAWS to experience it as a user with visual impairments would. Pay attention to how headers, captions, and data are announced. Does the screen reader navigate the table logically? Are all elements correctly identified and described?

    Keyboard testing is another critical step. Navigate through the table using only your keyboard to ensure that all interactive elements are accessible and functional.

    Why Accessible Tables Matter

    Accessible tables aren’t just about meeting legal requirements—they’re about creating a better user experience for everyone. By making your data tables accessible, you’re opening your content to a wider audience, including individuals with disabilities who rely on assistive technologies.

    Moreover, accessibility enhances usability for all users, not just those with disabilities. Features like clear headers, logical navigation, and responsive design make tables easier to use for everyone, whether they’re on a desktop computer or a smartphone.

    Conclusion

    Creating accessible data tables might require extra effort, but the benefits are well worth it. By following best practices like using proper structure, adding descriptive headers and captions, and ensuring compatibility with assistive technologies, you can make your tables both compliant and user-friendly.

    Remember, accessibility is an ongoing process. Stay informed about updates to guidelines like WCAG and continuously test your content to ensure it meets the highest standards. By prioritizing accessibility, you’re not just improving your website—you’re making the web a more inclusive space for all.

    Ready to take the first step? Partner with the experts at 216digital, who understand accessibility inside and out. Together, we can create a web that works for everyone—and protect your business in the process. Schedule your complimentary ADA briefing today to start your journey toward an accessible and compliant future.

    Greg McNeil

    December 11, 2024
    How-to Guides
    Accessibility, Data tables, How-to, web developers, web development, Website Accessibility
  • Small Design Choices, Big Accessibility Wins for All E-Commerce

    In the ever-evolving world of online shopping, small design choices can have a massive impact on customer experience—especially when it comes to accessibility. The beauty of accessible design isn’t just about meeting legal requirements; it’s about creating a shopping environment where everyone, regardless of their abilities, can navigate, interact, and complete purchases effortlessly. For e-commerce businesses, embracing accessibility means happier customers, improved loyalty, and ultimately, higher sales. Let’s explore some easy-to-implement design changes that can create big wins for your e-commerce store.

    Skip Navigation Links: A Keyboard and Screen Reader Lifesaver

    For many e-commerce users, particularly those who rely on screen readers or navigate using keyboards, skip navigation links are game-changers. These simple links allow users to bypass repetitive menus and jump straight to the main content.

    Imagine browsing an e-commerce site with dozens of product categories listed in a navigation bar. For someone tabbing through every link, it could feel like running a marathon before even reaching the product descriptions. Skip navigation links eliminate this hassle, ensuring users can quickly find what they’re looking for. Plus, it’s not just about accessibility—it’s about efficiency for all users.

    How to Implement

    Here’s an example of a skip navigation link implemented in HTML and CSS:

    <a href="#main-content" class="skip-link sr-only">Skip to Main Content</a>
    
    .sr-only { 
      position: absolute; left: -10000px; 
    } 
    .skip-link { 
      color: black; background-color: white; padding: 12px; border: 2px solid black; border-radius: 5px; z-index: 999; 
    } 
    .skip-link:focus-visible { 
      left: 0px; 
    }
    

    Add an id to the main content section to link to it:

    <div id="main-content">
      <!-- Main content goes here -->
    </div>

    This ensures the link appears only when focused, providing a seamless experience for keyboard users.

    Quick Links: Streamline Product Page Navigation

    E-commerce product pages often pack in a wealth of information, from product descriptions and specifications to reviews and related products. While comprehensive details are a plus, they can also feel overwhelming. That’s where quick links come in.

    By adding anchor links at the top of product pages, you give customers the option to jump directly to the section they care about most. Whether it’s “Customer Reviews,” “Specifications,” or “Add to Cart,” quick links make the browsing experience smooth and satisfying. This small touch can be a big win for users with disabilities, who might otherwise struggle to scroll through dense pages.

    How to Implement

    Use anchor links combined with id attributes:

    <nav>
      <ul>
        <li><a href="#description">Description</a></li>
        <li><a href="#specs">Specifications</a></li>
        <li><a href="#reviews">Customer Reviews</a></li>
      </ul>
    </nav>
    
    <section id="description">
      <h2>Product Description</h2>
      <p>Details about the product...</p>
    </section>
    
    <section id="specs">
      <h2>Specifications</h2>
      <p>Technical details...</p>
    </section>
    
    <section id="reviews">
      <h2>Customer Reviews</h2>
      <p>What customers are saying...</p>
    </section>

    Anchor links make navigation more accessible for all users, particularly those using assistive technologies.

    Repeated Call-to-Actions: Boost Engagement on Lengthy Pages

    Sometimes, e-commerce pages are lengthy by necessity—think of category pages featuring hundreds of products or detailed FAQs. Repeating key call-to-action (CTA) buttons, like “Add to Cart” or “Subscribe,” ensures users always have easy access to the next step.

    Why does this matter? For users with mobility issues or those navigating on mobile devices, scrolling back to the top for a CTA can be frustrating. A well-placed button at regular intervals keeps the experience seamless and reduces the risk of abandonment.

    To learn more about CTA’s and web accessibility, check out our article “Why ‘Click Here’ Hurts Your Website’s Accessibility.“

    How to Implement

    Here’s an example of a repeated CTA in HTML:

    <section>
      <p>Great deals await! Don’t miss out.</p>
      <a href="/checkout" class="cta-button">Add to Cart</a>
    </section>
    <section>
      <p>Ready to buy? Click below.</p>
      <a href="/checkout" class="cta-button">Add to Cart</a>
    </section>

    Enhance with CSS for visibility:

    .cta-button {
      display: inline-block;
      padding: 10px 20px;
      background-color: #007bff;
      color: white;
      text-decoration: none;
      font-size: 16px;
      border-radius: 5px;
    }
    .cta-button:hover {
      background-color: #0056b3;
    }

    High Contrast Colors: Accessibility Meets Visual Appeal

    Choosing high-contrast color combinations is one of the simplest yet most impactful accessibility adjustments an e-commerce site can make. Text should always stand out against its background, ensuring readability for users with low vision or color blindness.

    For instance, pairing black text on a white background is a classic high-contrast choice. Avoid combinations like light gray text on a white background—it may look sleek, but it’s a nightmare for users with visual impairments. Use online contrast checkers to ensure your color scheme meets Web Content Accessibility Guidelines (WCAG) standards.

    Descriptive Alt Text: Elevate Your Product Images

    Images play a starring role in e-commerce. From close-up shots of fabrics to 360-degree views of products, visuals help customers make informed decisions. But what about users who can’t see the images?

    Enter descriptive alt text. This essential element of accessible design provides text-based descriptions of images, allowing screen readers to convey their content. For example, instead of “Image of a shirt,” use something like “Blue cotton button-down shirt with long sleeves and a slim fit.” Not only does this help visually impaired users, but it also boosts your SEO, making your e-commerce site more discoverable.

    How to Implement

    Add descriptive alt text to your images in the alt attribute:

    <img src="blue-shirt.jpg" alt="Blue cotton button-down shirt with long sleeves and a slim fit">

    Accessible Forms: Smooth Checkout Experiences

    Forms are a staple of e-commerce, whether for creating accounts, signing up for newsletters, or completing purchases. Yet, poorly designed forms can alienate customers with disabilities.

    To ensure your forms are accessible:

    • Use clear labels for every field, even if it seems obvious.
    • Include error messages that explain the problem in plain language, like “Please enter a valid email address.”
    • Add focus indicators to show users where they are on the page as they tab through the form.

    These small changes make the checkout process easier for all customers while reducing cart abandonment rates.

    How to Implement

    Use clear labels, error messages, and focus indicators:

    <form>
      <label for="email">Email Address</label>
      <input type="email" id="email" name="email" required>
      
      <span id="error-message" style="color: red; display: none;">
        Please enter a valid email address.
      </span>
      <button type="submit">Submit</button>
    </form>

    Add JavaScript to show error messages dynamically:

    document.querySelector('form').addEventListener('submit', function(event) {
      const emailField = document.getElementById('email');
      if (!emailField.value.includes('@')) {
        event.preventDefault();
        document.getElementById('error-message').style.display = 'block';
      }
    });

    Ensure focus indicators are clear for keyboard users:

    input:focus {
      outline: 2px solid #007bff;
    }

    Accessibility Benefits Everyone

    While these features are designed with accessibility in mind, they often enhance the overall e-commerce experience for all users. For example, quick links and repeated CTAs aren’t just for users with disabilities—they make navigating long pages faster for everyone. High-contrast colors don’t only help users with low vision; they’re also easier to read in bright sunlight on mobile devices.

    Inclusive design doesn’t just expand your audience; it builds trust. Customers recognize and appreciate when a business goes the extra mile to ensure their shopping experience is smooth and enjoyable.

    The Payoff: Happier Customers and Higher Sales

    By incorporating accessibility features, you’re not just meeting legal obligations—you’re investing in your customers’ satisfaction. When customers feel valued and supported, they’re more likely to complete purchases, leave positive reviews, and return for future shopping. The result? A stronger, more inclusive e-commerce brand that thrives in today’s competitive market.

    Ready to take the next step? Schedule an ADA briefing with 216digital today to explore how accessibility can elevate your e-commerce site. Simply use the contact form at the bottom of this page to get started. Let’s work together to create a better online shopping experience for all!

    Make the change. Create an e-commerce experience that works for all—and watch as those small design choices turn into big accessibility wins!

    Greg McNeil

    December 6, 2024
    How-to Guides, The Benefits of Web Accessibility
    Accessibility, e-Commerce, ecommerce website, How-to, Web Accessibility
  • Skip Links: Improve Web Accessibility & Navigation

    More and more, digital accessibility has become a major talking point when browsing the web. One of the key components that improve accessibility for users with disabilities is something many users might not even notice: skip links.

    These simple yet powerful tools can make a huge difference in the web experience for individuals relying on keyboard-only interaction, screen readers, or other assistive technologies. In this article, we’ll explore the importance of skip links, their technical mechanics, and how you can implement them effectively on your website.

    What Are Skip Links and Why Are They Important?

    Skip links are navigational links that allow users to skip over repetitive content such as headers, navigation menus, or other elements they’ve already seen. For users relying on assistive technologies like screen readers, keyboard navigation, or switch devices, skip links enable them to jump directly to the main content of the page.

    When navigating a website using a keyboard (by pressing the Tab key), users typically encounter all of the page’s links and elements in a set order. This often means they have to cycle through the same menus, headers, and other repetitive content every time they visit a new page or reload an existing one. Skip links solve this problem by providing an easy way to bypass these elements, saving time and frustration for those who need alternative navigation methods.

    For example, imagine you’re using a screen reader to navigate a website. Without skip links, you might be forced to listen to the same navigation menu and header over and over again, even though you’re only trying to get to the main body of the page. Skip links allow you to bypass this content, going straight to the part of the page you want.

    The Key Benefits of Skip Links

    Improved Navigation for Keyboard-Only Users

    Many people with disabilities, including those with limited mobility or dexterity, use keyboards or alternative input devices to navigate the web. Skip links let users quickly navigate to the main content, bypassing headers, footers, and menus that they may have already accessed.

    Enhanced Experience for Screen Reader Users

    Screen readers announce every element on a webpage in the order they are tabbed through. Without skip links, users would have to hear the same menus and links repeatedly, making navigation time-consuming and tedious. Skip links streamline the experience by providing a shortcut to the main content.

    Better Usability for Assistive Technologies

    Skip links are a simple yet effective tool that benefits various assistive technologies, enhancing the overall usability of your website for a wide range of users.

    Increased Accessibility Compliance

    Many countries and regions have laws requiring websites to be accessible. For example, in the United States, the Americans with Disabilities Act (ADA) mandates that websites must be accessible to all users, including those with disabilities. Implementing skip links helps ensure your website is compliant with accessibility guidelines like Web Content Accessibility Guidelines (WCAG).

    How Do Skip Links Work?

    Skip links work by creating a link that, when activated, allows the user to bypass parts of the webpage and move directly to a more relevant section. These links are typically placed at the top of the page, visible only when the user navigates using the keyboard (by pressing the Tab key). The link itself usually says something like “Skip to main content,” “Skip to navigation,” or “Skip to footer,” depending on which section the user wants to bypass.

    The Technical Mechanics of Skip Links

    To create a skip link, you use basic HTML along with some helpful attributes to control the behavior and accessibility of the link. Here’s an overview of the technical aspects of skip links:

    HTML Structure with <a href> Tags

    The primary way to implement skip links is with the <a> (anchor) tag, which creates hyperlinks. These links should point to specific elements within the webpage, often with id attributes to mark the sections users can skip to.

    tabindex Attribute

    The tabindex attribute is used to control the tab order of elements. By default, links and form controls are included in the tab order. However, for skip links to work properly, they need to be made focusable before other content is tabbed through.

    aria-label and aria-hidden Attributes

    The aria-label attribute can be used to provide screen readers with a more descriptive label for the skip link. For example, you can use it to define a more readable label like “Skip to main content,” ensuring that screen readers announce the skip link’s purpose clearly. On the other hand, the aria-hidden attribute can be used to hide elements from assistive technologies when needed.

    A Simple Skip Link Example

    Here’s a simple HTML example of a skip link that allows users to skip directly to the main content of a webpage:

    <a href="#main-content" class="skip-link" tabindex="0" aria-label="Skip to main content">Skip to main content</a>
    <header>
    <nav> <!-- Navigation Links --> </nav>
    </header>
    <main id="main-content">
    <h1>Welcome to Our Website</h1>
    <p>This is the main content of the page...</p>
    </main>

    In this example:

    • The skip link (<a href="#main-content">) is placed at the top of the page and links to the main-content section identified by the id="main-content".
    • The tabindex="0" ensures that the skip link is focusable and can be reached when using the Tab key.
    • The aria-label="Skip to main content" helps screen reader users understand what the link does.

    Styling Skip Links

    While skip links are crucial for accessibility, they’re not always visually appealing by default. To make skip links blend in with your design, you’ll likely want to hide them until they’re needed and style them for better usability. Here’s how you can style skip links using CSS:

    .skip-link {
    position: absolute;
    top: -40px; /* Hide the link off-screen */
    left: 0;
    background-color: #000;
    color: #fff;
    padding: 10px;
    z-index: 100;
    }
    .skip-link:focus {
    top: 10px; /* Bring the link into view when focused */
    }

    In this example:

    • The .skip-link class hides the skip link off-screen with top: -40px until it’s needed.
    • When the link is focused (i.e., when the user tabs to it), it becomes visible by setting top: 10px.
    • You can customize the background color, text color, padding, and positioning to match your website’s design.

    JavaScript for Enhanced Skip Link Functionality

    In some cases, you may want to enhance the behavior of your skip link using JavaScript. For example, you might want to automatically focus the main content once the skip link is activated. Here’s how you can do that:

    document.querySelector('.skip-link').addEventListener('click', function(e) {
    e.preventDefault();
    document.querySelector('#main-content').focus();
    });

    This script listens for a click on the skip link and prevents the default action (i.e., jumping to the href target). Instead, it uses JavaScript to focus on the main content section, making it even easier for users to access.

    Testing Skip Links for Accessibility

    Once you’ve implemented skip links, it’s essential to test them to ensure they’re working as expected. Here are a few key tips for testing your skip links:

    1. Keyboard Navigation: Use the Tab key to cycle through the elements on your page. Ensure the skip link is the first item that can be focused and that it jumps you to the main content.
    2. Screen Reader Testing: Test your skip links with a screen reader (such as NVDA or VoiceOver) to ensure the skip links are announced correctly and work as expected.
    3. Cross-Browser Compatibility: Make sure your skip links work across different browsers and devices. Some older browsers might have quirks that affect the behavior of tabindex or CSS styling, so testing across multiple platforms is critical.
    4. Accessibility Tools: Use automated accessibility tools like Lighthouse to check for accessibility issues on your website. These tools can help identify missing or misused attributes related to skip links.

    Challenges with Skip Links

    While skip links are an essential tool for accessibility, there are some challenges you might encounter when implementing them:

    • Browser Inconsistencies: Different browsers and devices may render skip links or handle focus management differently. It’s important to test across various platforms to ensure consistent behavior.
    • Visibility and Styling: Skip links should be visible when needed but unobtrusive when not. Ensuring they are easily accessible but don’t clutter the design can require some careful styling.
    • Managing Focus Order: If your page has dynamic content (like modals or sticky headers), you may need to adjust the focus order or ensure that skip links still work as expected when these elements are present.

    Skip Ahead to Success

    Skip links are a simple but vital tool in improving the accessibility of your website. They help keyboard-only users, screen reader users, and others navigate your site more efficiently by skipping over repetitive content and jumping straight to the main sections of the page. By implementing skip links with proper HTML, CSS, and JavaScript, you can enhance the user experience for a wider audience, making your site more inclusive and accessible.

    If you’re ready to make your website ADA-compliant and accessible to everyone, schedule an ADA briefing with 216digital. Our team of experts will walk you through the process, address any questions, and help you create an inclusive, compliant, and user-friendly web experience. Don’t wait—take the first step toward a more accessible digital presence today.

    Greg McNeil

    November 21, 2024
    How-to Guides
    Accessibility, How-to, skip link, Web Accessibility, web developers, web development
  • Should Designers Hit Pause on Animation?

    Animation can bring a website to life, but have you ever considered how it impacts all users? While animations and gifs can make a site feel more dynamic, they can also cause some visitors discomfort—or worse—. Let’s explore why animations can be tricky from an accessibility standpoint and how you can design them to be both engaging and inclusive.

    Why Animation Can Be Problematic

    Animations aren’t just flashy extras—they can deeply affect how users experience your website, and not always in a good way.

    • Motion Sensitivity: Some people have vestibular disorders that make them sensitive to movement on screens. Animations like parallax scrolling or sliding elements can trigger dizziness, vertigo, or nausea.
    • Seizures: Flashing lights or strobing effects can be dangerous for users with photosensitive epilepsy. Even subtle flickers can cause issues.
    • Cognitive Overload: Busy or overly complex animations can overwhelm users with cognitive impairments, making it hard for them to focus or understand the content.
    • Assistive Technology Interference: Screen readers and other tools can struggle with animations that change content dynamically, leading to confusion.

    These challenges highlight why designers need to think critically about when and how they use animations.

    Does Your Design Really Need Animation?

    Not every project calls for animation. Before you add that fancy effect, ask yourself:

    • Does it serve a purpose?
    • Will it help users navigate or understand the site?
    • Could it distract or overwhelm someone?

    Animations should always have a clear function, like drawing attention to a call-to-action or giving feedback on an interaction. If the animation doesn’t improve usability, it might be best to skip it.

    Making Animations Accessible

    If you must use an animation, here are some tips to ensure it doesn’t cause issues for people with cognitive or visual impairments:

    1. Keep It Simple: Avoid overly elaborate or decorative effects. Subtle transitions or fades can be just as effective without being overwhelming.
    2. Mind the Timing: Speed matters. Too fast, and users might get lost; too slow, and they could grow impatient. Aim for a balance that feels natural.
    3. Give Users Control: All animations should have visual and accessible controls to pause and play the animation. Always respect the prefers-reduced-motion media query.
    4. Focus on Purpose: Every animation should add value. Whether it’s guiding users or making content clearer, make sure it serves a meaningful purpose.

    A Quick Fix with prefers-reduced-motion

    One of the easiest ways to address motion sensitivity is by using the prefers-reduced-motion media query. This CSS feature checks if a user has reduced motion enabled on their device and adjusts animations accordingly.

    Here’s how you can tone down animations for users who prefer less motion:

    @media (prefers-reduced-motion: reduce) {  
      .animated-element {  
        animation: none;  
        transition: none;  
      }  
    }  

    Want to simplify rather than completely disable? Try this:

    @media (prefers-reduced-motion: reduce) {  
      .fade-in {  
        animation: fade-in 0.5s linear;  
      }  
    }  
    @keyframes fade-in {  
      from { opacity: 0; }  
      to { opacity: 1; }  
    }  
    

    This approach keeps your design functional while reducing the risk of discomfort for sensitive users.

    What Does WCAG Say About Animation?

    The Web Content Accessibility Guidelines (WCAG) offer clear rules about animations. Two of the most relevant criteria are:

    • 2.3.1: Three Flashes or Below Threshold
    • Avoid animations that flash more than three times per second. It’s a crucial step in reducing the risk of seizures.
    • 2.3.3: Animation from Interactions
    • If animations are triggered by user actions, make sure they can be disabled without affecting functionality.

    Following these guidelines helps ensure your site is usable for everyone.

    Testing Your Animations

    Testing is an essential part of designing accessible animations. Here’s how to do it effectively:

    • Check Motion Settings: Turn on the “reduce motion” setting on your device (available on macOS, Windows, iOS, and Android) and see how your site responds.
    • Try Keyboard Navigation: Ensure animations don’t interfere with keyboard functionality. Can users still tab through links and buttons smoothly?
    • Use Automated Tools: Tools like Lighthouse can catch accessibility issues related to animations.
    • Gather Feedback: Get input from real users, especially those with disabilities. They’ll provide insights you might not have considered.

    Accessible Animation with JavaScript

    Sometimes, you’ll need JavaScript to handle animations. You can still make them accessible by pairing JavaScript with prefers-reduced-motion.

    Here’s a quick example:

    const reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)');  
    if (reduceMotion.matches) {  
      // Turn off animations for users who prefer reduced motion  
      document.querySelector('.animated-element').style.animation = 'none';  
    } else {  
      // Keep animations for everyone else  
      document.querySelector('.animated-element').classList.add('run-animation');  
    }   

    This snippet ensures your animations adapt to user preferences without requiring manual toggles.

    Wrapping It Up

    Animations can be a powerful tool for creating engaging, interactive websites—but they should never come at the expense of accessibility. By keeping animations simple, purposeful, and user-controlled, you can deliver a better experience for all your visitors.

    Don’t forget to test your designs with real users and tools, and make use of features like prefers-reduced-motion to accommodate different needs. Thoughtful design is inclusive design, and accessible animations are a small change that can make a big difference. If you’re unsure if the animations on your website are accessible or would like an expert partner to help you get started, reach out to 216digital using the contact form below.

    Bobby

    November 14, 2024
    How-to Guides
    Accessibility, animation, How-to, web developers, web development, Website Accessibility
Previous Page
1 2 3 4 5
Next Page
216digital Scanning Tool

Audit Your Website for Free

Find Out if Your Website is WCAG & ADA Compliant













    216digital Logo

    Our team is full of expert professionals in Web Accessibility Remediation, eCommerce Design & Development, and Marketing – ready to help you reach your goals and thrive in a competitive marketplace. 

    216 Digital, Inc. BBB Business Review

    Get in Touch

    2208 E Enterprise Pkwy
    Twinsburg, OH 44087
    216.505.4400
    info@216digital.com

    Support

    Support Desk
    Acceptable Use Policy
    Accessibility Policy
    Privacy Policy

    Web Accessibility

    Settlement & Risk Mitigation
    WCAG 2.1/2.2 AA Compliance
    Monitoring Service by a11y.Radar

    Development & Marketing

    eCommerce Development
    PPC Marketing
    Professional SEO

    About

    About Us
    Contact

    Copyright 2024 216digital. All Rights Reserved.