Table of Contents
Accessible Non-Text Content
Some visual elements contain characters, emojis, or textual information that may not be self-explanatory for people using assistive technologies. Providing accurate, meaningful descriptions ensures that all users—including those who rely on screen readers—can fully understand your app’s content.
🎯 Why It Matters
Some visual elements contain characters, emojis, or textual information that may not be self-explanatory for people using assistive technologies. Providing accurate, meaningful descriptions ensures that all users—including those who rely on screen readers—can fully understand your app's content.
When screen readers encounter emojis, special characters, or text embedded in images without proper descriptions, they may:
- Announce emojis as generic terms like "emoji" or skip them entirely
- Read special characters or mathematical symbols incorrectly
- Be unable to convey important information contained within images
This creates significant barriers for users who depend on assistive technologies to access your content.
💻 Implementation
Correct Code Example: Providing Emoji Descriptions
Demo Description
This snippet demonstrates how to display a text string containing emojis and then provide a separate accessibility label that clearly describes the emoji's meaning.
// SwiftUI
import SwiftUI
struct EmojiDescriptionView: View {
var body: some View {
Text("I ❤️ iOS!")
.accessibilityLabel("I love iOS!")
}
}Code Explanation
This SwiftUI code sets the text to "I ❤️ iOS!" and attaches the accessibilityLabel modifier with the value "I love iOS!", ensuring screen readers correctly announce the phrase rather than just reading the emoji as "heart."
Correct Code Example: Adding Context to Special Characters
Demo Description
Special characters or symbols, such as mathematical formulas or scientific notations, may not be obvious to those listening through screen readers. Here, we display Einstein's famous equation but also include a plain-language accessibility label.
// SwiftUI
import SwiftUI
struct SpecialCharacterView: View {
var body: some View {
Text("E = mc²")
.accessibilityLabel("E equals m c squared")
}
}Code Explanation
This snippet displays "E = mc²" visually, while the accessibilityLabel modifier with the value "E equals m c squared" gives users a complete and understandable audio representation of the formula.
Correct Code Example: Describing Text in Images
Demo Description
Essential information should generally not be embedded in images. If you must include important text in an image, provide a thorough description so screen readers can convey it to users.
// SwiftUI
import SwiftUI
struct BannerImageView: View {
var body: some View {
Image("welcomeBanner") // e.g., a stored asset named "welcomeBanner"
.resizable()
.scaledToFit()
.accessibilityLabel("Black Friday special offer. 50 percent off selected items.")
}
}Code Explanation
This code sets the image resource "welcomeBanner" and provides a clear accessibilityLabel modifier with the value "Black Friday special offer. 50 percent off selected items," ensuring the text on the banner is announced by screen readers.
✅ Best Practices
Do's
- ✓Provide descriptive labels for all emojis that convey meaning
- ✓Spell out special characters and mathematical symbols phonetically
- ✓Include complete text descriptions for images containing text
- ✓Use plain language that's easy to understand
- ✓Test with screen readers to verify descriptions are announced correctly
- ✓Consider cultural context when describing emojis and symbols
- ✓Keep descriptions concise while maintaining clarity
Don'ts
- ✗Embed critical information solely in images without alternative text
- ✗Assume screen readers will correctly interpret emojis automatically
- ✗Use vague descriptions like "special character" or "symbol"
- ✗Over-describe decorative elements that don't convey information
- ✗Forget to describe emojis used for emotional context or tone
- ✗Leave mathematical or scientific notation without plain-language explanations
- ✗Use technical jargon in accessibility labels when simpler language works
🔍 Common Pitfalls
Undescribed Emojis
Emojis without accessibility labels may be announced generically or skipped entirely, losing important emotional context or meaning
Technical Symbol Jargon
Using technical names for symbols (e.g., "superscript two" instead of "squared") that may confuse users unfamiliar with the terminology
Missing Image Text
Forgetting to provide alternative text for promotional banners, infographics, or screenshots containing important information
Over-Description
Providing unnecessarily long or complex descriptions for simple visual elements
Decorative vs. Meaningful
Failing to distinguish between decorative emojis (which can be hidden from screen readers) and meaningful ones that convey essential information
Context Loss
Describing only the literal symbol without explaining its meaning in context
VoiceOver/TalkBack
Screen readers will announce the accessibility label instead of attempting to interpret emojis, special characters, or image content. For emojis, VoiceOver will speak the custom label (e.g., "love" instead of "red heart"). For special characters, it will announce the phonetic description. For images with text, the entire text content will be spoken
Voice Control
Clear, descriptive labels help voice control users understand what's on screen, even if they can't see visual elements
Dynamic Type
Text-based alternatives for visual content ensure information remains accessible even when text is scaled to larger sizes
Braille Displays
Accessibility labels are converted to braille, allowing users with deafblindness to access emoji meanings, special character descriptions, and image text content
🧪 Testing Steps
- 1Enable VoiceOver: Settings → Accessibility → VoiceOver
- 2Navigate to emoji content: Swipe to elements containing emojis
- 3Verify emoji announcements: Ensure emojis are described meaningfully, not just as "emoji"
- 4Test special characters: Navigate to mathematical or scientific symbols
- 5Check symbol pronunciation: Verify symbols are announced in understandable language
- 6Review image text: Navigate to images containing text
- 7Confirm image descriptions: Ensure all text content in images is conveyed through accessibility labels
Become a member to read this solution, and all of Ma11y.
This resource is part of our member knowledge base. Log in or create an account to unlock:
- Complete accessibility guidance and implementation examples
- Curated compliance frameworks and checklists
- Early access to new tools and features
