Over 60% of web traffic comes from mobile devices. Mobile accessibility is not a nice-to-have — it's essential for reaching the full range of users with disabilities, including those who rely on mobile screen readers as their primary browsing method.
| Criterion | Level | Mobile Requirement |
|---|---|---|
| 1.3.4 Orientation | AA | Don't lock orientation to portrait or landscape unless essential |
| 1.4.10 Reflow | AA | Content reflows to single column at 320px CSS width without horizontal scrolling |
| 2.5.1 Pointer Gestures | A | All multipoint/path-based gestures have single-pointer alternatives |
| 2.5.2 Pointer Cancellation | A | Single-pointer functions can be cancelled (no action on down-event without reversal option) |
| 2.5.4 Motion Actuation | A | Device motion gestures (shake, tilt) have button equivalents and can be disabled |
| 2.5.8 Target Size (WCAG 2.2) | AA | Touch targets are at least 24×24 CSS pixels |
Small touch targets are a major mobile accessibility failure. People with motor impairments, older users, and users with tremors struggle to hit small targets accurately.
See how 321 websites scored →
View the 2026 Report| Guideline | Minimum Size | Notes |
|---|---|---|
| WCAG 2.2 (2.5.8 AA) | 24×24 CSS px | Or adequate spacing between adjacent targets |
| WCAG 2.5.5 AAA | 44×44 CSS px | Recommended target size |
| Apple HIG | 44×44 pts | Apple's recommendation for iOS |
| Material Design | 48×48 dp | Google's recommendation for Android |
/* Ensure minimum tap target size */
button, [role="button"], a, input, select, textarea {
min-height: 44px;
min-width: 44px;
padding: 8px 16px; /* Adds to clickable area without changing visual size */
}
/* For icon buttons: use padding to expand target */
.icon-btn {
/* Visual icon: 20×20 */
padding: 12px; /* Effective click area: 44×44 */
}
/* FAIL: locks to portrait only */
@media screen and (orientation: landscape) {
body { display: none; }
}
/* FAIL in CSS: this alone doesn't meet 1.3.4, but */
/* also avoid locking in HTML/JS */
/* JavaScript screen lock — only acceptable for video players, games */
screen.orientation.lock('portrait'); // Only if truly essential to the app
Exceptions exist for content where a specific orientation is essential — a piano keyboard app, a panoramic viewer. But locking a standard website to portrait is never acceptable.
At 320px CSS width (equivalent to 400% zoom on a 1280px screen), content must be readable without horizontal scrolling.
/* FAIL: fixed widths break reflow */
.container { width: 800px; }
.sidebar { width: 300px; float: left; }
/* PASS: fluid layout */
.container { max-width: 100%; }
.layout { display: flex; flex-wrap: wrap; gap: 1rem; }
.main { flex: 1 1 300px; min-width: 0; }
.sidebar { flex: 0 1 280px; min-width: 0; }
/* Viewport meta tag — required for proper mobile rendering */
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Any feature that uses multi-touch gestures (pinch-to-zoom, swipe, two-finger scroll) must have a single-pointer alternative:
<!-- Map pinch-to-zoom: must also have +/- buttons --> <div id="map" aria-label="Interactive map"> <button aria-label="Zoom in">+</button> <button aria-label="Zoom out">−</button> </div> <!-- Carousel swipe: must also have previous/next buttons --> <div class="carousel" role="region" aria-label="Product images"> <button aria-label="Previous image">‹</button> <button aria-label="Next image">›</button> </div>
Accessalyze tests your site including mobile-specific WCAG 2.1 criteria. Free instant report.
Scan Mobile Accessibility →See real website accessibility scores: Browse 244+ free accessibility audits →
Try it yourself
Enter your website URL to get a free accessibility score.