Blog

Mobile Accessibility Testing: WCAG 2.2 Requirements for Responsive Design

TestParty
TestParty
March 28, 2025

Mobile devices now account for over 60% of web traffic globally. For e-commerce, mobile shopping continues growing—particularly in social commerce and mobile checkout scenarios. When mobile experiences are inaccessible, the majority of users face barriers.

Mobile accessibility extends beyond responsive design. Touch interfaces, screen readers like VoiceOver and TalkBack, device orientation, and smaller viewports create accessibility challenges distinct from desktop. WCAG 2.1 and 2.2 added success criteria specifically addressing mobile interaction patterns.

This guide covers mobile-specific accessibility requirements, testing methodologies, and common failure patterns.


Why Mobile Accessibility Matters

Mobile accessibility affects overlapping user populations.

Mobile Screen Reader Users

VoiceOver (iOS) and TalkBack (Android) enable blind users to navigate mobile devices. These screen readers use touch-based gestures—swipe to navigate, double-tap to activate—different from desktop keyboard navigation.

According to WebAIM surveys, approximately 70% of screen reader users access websites on mobile devices. Mobile screen reader usage is not an edge case.

Motor Disability Users

Users with motor disabilities may have difficulty with:

  • Small touch targets
  • Precise gestures
  • Multi-finger gestures
  • Device shaking or tilting

Aging Users

Older users often experience:

  • Reduced vision (need larger text)
  • Reduced touch precision (need larger targets)
  • Reduced hearing (need visual alternatives)
  • Cognitive changes (need simpler interfaces)

Mobile is often the primary computing device for many older adults.

Situational Limitations

Mobile use creates temporary limitations:

  • One-handed use while carrying items
  • Bright sunlight reducing visibility
  • Loud environments making audio inaccessible
  • Cold weather affecting touch precision

WCAG Requirements for Mobile

While WCAG applies equally to mobile and desktop, several success criteria address mobile-specific concerns.

Touch Target Size

2.5.5 Target Size (Enhanced) — Level AAA Touch targets should be at least 44x44 CSS pixels.

2.5.8 Target Size (Minimum) — Level AA (WCAG 2.2) Touch targets should be at least 24x24 CSS pixels, with spacing requirements.

Exceptions:

  • Links within text blocks (inline links)
  • Browser-controlled elements
  • Essential presentation requiring specific size
  • Equivalent targets available

Orientation

1.3.4 Orientation — Level AA Content must not restrict operation to a single display orientation (portrait or landscape) unless a specific orientation is essential.

Essential exceptions:

  • Bank check deposit (requires landscape)
  • Piano app (requires landscape)
  • Specific hardware requirements

Motion Actuation

2.5.4 Motion Actuation — Level A Functionality triggered by device motion (shake, tilt) must have UI alternatives, and motion triggering can be disabled.

Pointer Gestures

2.5.1 Pointer Gestures — Level A Functionality requiring multi-point or path-based gestures has single-pointer alternatives.

Multi-point: Pinch zoom, two-finger rotate Path-based: Swipe patterns, drag directions

Pointer Cancellation

2.5.2 Pointer Cancellation — Level A For single-pointer functions:

  • No down-event triggering (action on tap-down)
  • Ability to abort or undo
  • Up-event reversal

Reflow

1.4.10 Reflow — Level AA Content reflows without requiring two-dimensional scrolling at 320 CSS pixels wide (for vertical scrolling) or 256 CSS pixels tall (for horizontal scrolling).

Exceptions: Images, maps, diagrams, data tables, and content where two-dimensional layout is essential.

Text Spacing

1.4.12 Text Spacing — Level AA Content must function when user adjusts:

  • Line height to 1.5 times font size
  • Paragraph spacing to 2 times font size
  • Letter spacing to 0.12 times font size
  • Word spacing to 0.16 times font size

Content on Hover or Focus

1.4.13 Content on Hover or Focus — Level AA Additional content appearing on hover/focus must be:

  • Dismissible without moving pointer/focus
  • Hoverable (pointer can move to new content)
  • Persistent until dismissed, hover removed, or info invalid

This primarily affects tooltips and dropdown menus.


Touch Target Requirements

Touch targets must be large enough for users with motor difficulties.

Minimum Size Guidelines

WCAG 2.2 Level AA (2.5.8): Minimum 24x24 CSS pixels with specific spacing rules.

WCAG 2.2 Level AAA (2.5.5): Minimum 44x44 CSS pixels.

Apple Human Interface Guidelines: Minimum 44x44 points.

Material Design: Minimum 48x48 dp (density-independent pixels).

Practical recommendation: Target 44x44 CSS pixels minimum. Larger is better, especially for primary actions.

Measuring Touch Targets

The touch target includes the entire clickable/tappable area, not just the visible element:

/* Small visible button, adequate touch target */
.icon-button {
  width: 24px;
  height: 24px;
  padding: 10px; /* Creates 44x44 total touch target */
}

/* Or use min-height/min-width */
.small-link {
  display: inline-block;
  min-width: 44px;
  min-height: 44px;
  padding: 12px;
}

Target Spacing

Adjacent targets should have adequate spacing to prevent accidental activation:

/* Adequate spacing between targets */
.nav-link {
  padding: 12px 16px;
  margin: 4px;
}

/* Icon buttons in a row */
.icon-row button {
  width: 44px;
  height: 44px;
  margin: 0 8px; /* 8px gap between targets */
}

Common Target Size Failures

Footer links: Small text links packed tightly together.

Social media icons: Small icons without adequate padding.

Close buttons (X): Tiny close buttons on modals and banners.

Form inputs: Small checkboxes and radio buttons.

Pagination: Small page number links.


Responsive Design Accessibility

Responsive design must maintain accessibility across breakpoints.

Content Reflow

Content should reflow to fit viewport without horizontal scrolling:

/* Responsive layout */
.container {
  max-width: 100%;
  padding: 16px;
}

/* Responsive images */
img {
  max-width: 100%;
  height: auto;
}

/* Responsive tables - horizontal scroll acceptable */
.table-wrapper {
  overflow-x: auto;
}

Testing Reflow

Test at 320px viewport width (simulates 400% zoom on 1280px desktop):

  1. Set browser viewport to 320px wide
  2. Navigate entire site
  3. Verify no horizontal scrolling for text content
  4. Verify all functionality accessible
  5. Verify text readable without zooming

Viewport Meta Tag

Use appropriate viewport settings:

<!-- Recommended -->
<meta name="viewport" content="width=device-width, initial-scale=1">

<!-- Avoid: Prevents user zooming -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

Never disable user zooming (user-scalable=no, maximum-scale=1). Users with low vision need to zoom.

Text Sizing

Text should be resizable without breaking layout:

/* Use relative units for text */
body {
  font-size: 100%; /* Respects user preferences */
}

h1 {
  font-size: 2rem; /* Relative to root */
}

p {
  font-size: 1rem;
  line-height: 1.5;
}

/* Avoid fixed font sizes */
.bad-example {
  font-size: 14px; /* Doesn't scale with user preferences */
}

Layout Adaptation

Navigation should adapt to mobile appropriately:

<!-- Mobile navigation pattern -->
<nav aria-label="Main navigation">
  <button aria-expanded="false" aria-controls="nav-menu">
    Menu
  </button>
  <ul id="nav-menu" hidden>
    <li><a href="/">Home</a></li>
    <li><a href="/products">Products</a></li>
  </ul>
</nav>

Ensure mobile navigation:

  • Is keyboard accessible
  • Communicates expanded/collapsed state
  • Has adequate touch targets
  • Doesn't trap focus

Mobile Screen Reader Testing

Testing with VoiceOver and TalkBack reveals mobile-specific issues.

VoiceOver (iOS) Setup

Enable: Settings → Accessibility → VoiceOver → On

Or: Ask Siri "Turn on VoiceOver"

Essential gestures:

| Gesture               | Action                     |
|-----------------------|----------------------------|
| Swipe right           | Move to next element       |
| Swipe left            | Move to previous element   |
| Double-tap            | Activate selected element  |
| Two-finger swipe up   | Read from top              |
| Two-finger swipe down | Read from current position |
| Two-finger tap        | Stop/start speaking        |
| Three-finger swipe    | Scroll                     |
| Two-finger rotate     | Open rotor                 |

TalkBack (Android) Setup

Enable: Settings → Accessibility → TalkBack → On

Essential gestures:

| Gesture               | Action                    |
|-----------------------|---------------------------|
| Swipe right           | Move to next element      |
| Swipe left            | Move to previous element  |
| Double-tap            | Activate selected element |
| Swipe up then down    | Back button               |
| Swipe down then up    | Home                      |
| Swipe down then right | Open TalkBack menu        |

Mobile Screen Reader Testing Checklist

Page structure:

  • [ ] Headings announce correctly (swipe up/down changes navigation mode)
  • [ ] Landmarks are recognized and navigable
  • [ ] Page title announces on load

Navigation:

  • [ ] All navigation items reachable
  • [ ] Mobile menu button announces state (expanded/collapsed)
  • [ ] Menu items in logical order

Forms:

  • [ ] Form fields have labels announced
  • [ ] Required fields identified
  • [ ] Error messages announced
  • [ ] Form can be submitted

Interactive elements:

  • [ ] Buttons announce purpose
  • [ ] Links announce destination
  • [ ] Custom controls have proper roles

Content:

  • [ ] Images have alt text
  • [ ] Text is readable and in logical order
  • [ ] Dynamic content updates announced

Mobile-Specific Testing Areas

Beyond screen reader testing, evaluate these mobile-specific concerns.

Orientation Changes

Test both portrait and landscape:

  1. Load page in portrait
  2. Rotate to landscape
  3. Verify content remains accessible
  4. Verify no functionality lost
  5. Return to portrait
  6. Verify content preserved

Ensure:

  • Content doesn't require specific orientation
  • Layout adapts without breaking
  • Focus isn't lost on rotation

Touch Gesture Alternatives

For any gesture-triggered functionality:

| Gesture         | Required Alternative   |
|-----------------|------------------------|
| Pinch to zoom   | Plus/minus buttons     |
| Swipe to delete | Delete button          |
| Pull to refresh | Refresh button         |
| Shake to undo   | Undo button            |
| Long press      | Alternative activation |

Form Usability on Mobile

Input types:

<!-- Appropriate keyboards on mobile -->
<input type="email">    <!-- @ symbol prominent -->
<input type="tel">      <!-- Number pad -->
<input type="url">      <!-- .com button -->
<input type="number">   <!-- Number keyboard -->
<input type="search">   <!-- Search button on keyboard -->

Autocomplete: Enable autocomplete to reduce typing:

<input type="text" autocomplete="name">
<input type="email" autocomplete="email">
<input type="tel" autocomplete="tel">

Labels above fields: On mobile, labels should appear above fields rather than beside them:

@media (max-width: 600px) {
  .form-group {
    flex-direction: column;
  }
  label {
    margin-bottom: 4px;
  }
}

Fixed/Sticky Elements

Fixed headers and footers can obscure content:

/* Ensure focused elements aren't hidden */
:focus {
  scroll-margin-top: 80px; /* Account for fixed header */
  scroll-margin-bottom: 60px; /* Account for fixed footer */
}

Test that:

  • Fixed elements don't cover focused elements
  • Skip links work with fixed headers
  • Modal focus visible with fixed elements

Mobile Modals and Overlays

Mobile modals require special attention:

  • Full-screen or nearly full-screen on small viewports
  • Large, easily tappable close button
  • Focus trapped within modal
  • Scrollable if content exceeds viewport
  • Dismissible via back button/gesture

Testing Tools and Methods

Browser DevTools Mobile Mode

Chrome DevTools device emulation:

  1. Open DevTools (F12)
  2. Toggle device toolbar (Ctrl+Shift+M)
  3. Select device or custom dimensions
  4. Test responsive breakpoints
  5. Test touch events

Limitations: Emulation doesn't replicate actual mobile screen readers.

Real Device Testing

Test on actual mobile devices for accurate results:

iOS device testing:

  • Safari + VoiceOver
  • Test multiple iOS versions
  • Test various device sizes

Android device testing:

  • Chrome + TalkBack
  • Test multiple Android versions
  • Test various device sizes

Budget testing approach:

  • Use personal devices
  • BrowserStack/Sauce Labs for device variety
  • Focus on most common devices for your audience

Accessibility Scanners

Mobile-specific scanning:

  • Test responsive views in desktop scanners
  • Some scanners have mobile-specific checks
  • Manual testing remains essential

Browser extensions for mobile simulation:

  • WAVE evaluation tool
  • axe DevTools
  • Accessibility Insights

Common Mobile Accessibility Failures

Recognize and avoid these frequent issues.

Disabled Zooming

<!-- Never do this -->
<meta name="viewport" content="maximum-scale=1, user-scalable=no">

Users need zooming capability. This is a WCAG failure.

Touch Targets Too Small

Failure:

.footer-link {
  padding: 4px;
  font-size: 12px;
}

Fix:

.footer-link {
  padding: 12px;
  font-size: 14px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

Hover-Only Content on Touch

Content revealed only on hover is inaccessible on touch:

/* Problem: hover-only */
.dropdown:hover .menu { display: block; }

/* Fix: Include focus and click/tap */
.dropdown:hover .menu,
.dropdown:focus-within .menu,
.dropdown.active .menu {
  display: block;
}

Orientation Lock

Forcing single orientation excludes users:

// Never do this
screen.orientation.lock('portrait');

Unless orientation is truly essential (which is rare).

Fixed Position Elements Covering Content

/* Problem: Content hidden under fixed header */
.fixed-header {
  position: fixed;
  top: 0;
  height: 60px;
}

/* Fix: Account for fixed header */
main {
  padding-top: 70px;
}

:focus {
  scroll-margin-top: 70px;
}

Missing Keyboard Support for Mobile

Some developers assume mobile means touch-only. External keyboards, switch devices, and screen readers require keyboard support:

// Ensure keyboard handlers work on mobile too
element.addEventListener('click', handleActivation);
element.addEventListener('keydown', (e) => {
  if (e.key === 'Enter' || e.key === ' ') {
    handleActivation(e);
  }
});

Mobile E-commerce Considerations

E-commerce mobile accessibility requires extra attention.

Product Browsing

  • Filter controls: Large enough touch targets
  • Sort controls: Accessible dropdowns
  • Grid/list toggle: Clear state indication
  • Infinite scroll: Alternative pagination option
  • Quick view: Accessible modal implementation

Product Pages

  • Image galleries: Swipeable AND button-controlled
  • Variant selectors: Large touch targets for size/color
  • Add to cart: Prominent, adequately sized button
  • Reviews: Accessible star ratings

Cart and Checkout

  • Quantity selectors: Easy to tap plus/minus
  • Remove buttons: Adequate size, clear labeling
  • Form fields: Appropriate input types
  • Payment: Support autofill, large buttons
  • Order summary: Readable on small screens

See our Common WCAG Failures in Shopify Themes for e-commerce-specific guidance.


Taking Action

Mobile accessibility testing ensures your site works for the majority of web users who access content on mobile devices. The requirements extend beyond responsive design to touch targets, orientation, screen reader compatibility, and mobile-specific interaction patterns.

Start by testing your site with VoiceOver or TalkBack on a real device. Navigate key user flows—product browsing, checkout, account management—to identify mobile-specific barriers.

Schedule a TestParty demo and get a 14-day compliance implementation plan.


Stay informed

Accessibility insights delivered
straight to your inbox.

Contact Us

Automate the software work for accessibility compliance, end-to-end.

Empowering businesses with seamless digital accessibility solutions—simple, inclusive, effective.

Book a Demo