visibility
CSS property · 10 supported, 0 partial, 5 unsupported across 15 clients
Client Support
| Client | Category | Engine | Support |
|---|---|---|---|
| Gmail | webmail | Gmail Web | Unsupported |
| Gmail Android | mobile | Gmail Mobile | Unsupported |
| Gmail iOS | mobile | Gmail Mobile | Unsupported |
| Outlook 365 | webmail | Outlook Web | Supported |
| Outlook (New) | desktop | Outlook Web | Unsupported |
| Outlook Classic | desktop | Microsoft Word | Unsupported |
| Outlook iOS | mobile | Outlook Mobile | Supported |
| Outlook Android | mobile | Outlook Mobile | Supported |
| Apple Mail | desktop | WebKit | Supported |
| Apple Mail iOS | mobile | WebKit | Supported |
| Yahoo Mail | webmail | Yahoo | Supported |
| Samsung Mail | mobile | Samsung | Supported |
| Thunderbird | desktop | Gecko | Supported |
| HEY Mail | webmail | WebKit | Supported |
| Superhuman | desktop | Blink | Supported |
Client-by-client behaviour for visibility
Fully supports visibility (10): Outlook 365, Outlook iOS, Outlook Android, Apple Mail, Apple Mail iOS, Yahoo Mail, Samsung Mail, Thunderbird, HEY Mail, Superhuman.
No support (5): Gmail, Gmail Android, Gmail iOS, Outlook (New), Outlook Classic. Plan fallbacks for these clients before relying on visibility in production sends.
Fixes & Workarounds
Gmail
UnsupportedRemove the element or use display:none as an alternative.
Before
<div style="visibility: hidden;">
Hidden content for screen readers
</div>After
<!-- For screen readers, use font-size: 0 trick -->
<div style="font-size: 0; max-height: 0; overflow: hidden;
mso-hide: all;" aria-hidden="true">
Preheader text
</div>Use conditional comments or remove hidden content
Gmail Android
UnsupportedRemove the element or use display:none as an alternative.
Before
<div style="visibility: hidden;">
Hidden content for screen readers
</div>After
<!-- For screen readers, use font-size: 0 trick -->
<div style="font-size: 0; max-height: 0; overflow: hidden;
mso-hide: all;" aria-hidden="true">
Preheader text
</div>Use conditional comments or remove hidden content
Gmail iOS
UnsupportedRemove the element or use display:none as an alternative.
Before
<div style="visibility: hidden;">
Hidden content for screen readers
</div>After
<!-- For screen readers, use font-size: 0 trick -->
<div style="font-size: 0; max-height: 0; overflow: hidden;
mso-hide: all;" aria-hidden="true">
Preheader text
</div>Use conditional comments or remove hidden content
Outlook (New)
UnsupportedRemove the element or use display:none as an alternative.
Before
<div style="visibility: hidden;">
Hidden content for screen readers
</div>After
<!-- For screen readers, use font-size: 0 trick -->
<div style="font-size: 0; max-height: 0; overflow: hidden;
mso-hide: all;" aria-hidden="true">
Preheader text
</div>Use conditional comments or remove hidden content
Outlook Classic
UnsupportedRemove the element or use display:none as an alternative.
Before
<div style="visibility: hidden;">
Hidden content for screen readers
</div>After
<!-- For screen readers, use font-size: 0 trick -->
<div style="font-size: 0; max-height: 0; overflow: hidden;
mso-hide: all;" aria-hidden="true">
Preheader text
</div>Use conditional comments or remove hidden content
Production guidance for visibility
visibility is a CSS property. Across the email client matrix, 10 of 15 tracked clients support it fully, 0 only partially, and 5 not at all. The clients most likely to require a workaround for this feature are Gmail, Gmail Android, Gmail iOS. Each of them needs a tailored fallback — see the per-client examples above for the specific code fix Emailens recommends.
When in doubt, ship a baseline that renders without visibility and treat it as progressive enhancement on clients where support is verified. Emailens automatically detects cross-client divergence on this feature when you preview an email, so you can see exactly which template paths break before a campaign goes out.
Related Features
Test your email across all 15 clients
Preview rendering, catch CSS issues, and get actionable fixes — free.
Try Emailens FreeSupport data last updated Apr 27, 2026 · synced from caniemail.com via @emailens/engine.