惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
F
Full Disclosure
B
Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
L
Lohrmann on Cybersecurity
月光博客
月光博客
I
Intezer
博客园 - 三生石上(FineUI控件)
Hacker News - Newest:
Hacker News - Newest: "LLM"
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园_首页
P
Proofpoint News Feed
C
Check Point Blog
N
News | PayPal Newsroom
H
Heimdal Security Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
G
GRAHAM CLULEY
WordPress大学
WordPress大学
C
CERT Recently Published Vulnerability Notes
Y
Y Combinator Blog
Recorded Future
Recorded Future
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tailwind CSS Blog
W
WeLiveSecurity
L
LINUX DO - 热门话题
Microsoft Azure Blog
Microsoft Azure Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Schneier on Security
Schneier on Security
爱范儿
爱范儿
Martin Fowler
Martin Fowler
U
Unit 42
T
Troy Hunt's Blog
S
Securelist
V
V2EX
V2EX - 技术
V2EX - 技术
MongoDB | Blog
MongoDB | Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
T
Tor Project blog
Cisco Talos Blog
Cisco Talos Blog
罗磊的独立博客
小众软件
小众软件
阮一峰的网络日志
阮一峰的网络日志
Vercel News
Vercel News

Ben Myers

Tag, You’re It: Blog Questions 2025 Don’t Use aria-label on Static Text Elements Subtitles, Closed Captions, and Open Captions: What’s the Difference? Lost in Translation: Tips for Multilingual Web Accessibility Build a Blogroll with Eleventy I’m a Spotless Giraffe. How I Write Alt Text for Code Snippets on Social Media The Web Needs a Native .visually-hidden Create Shareable Automatic Captions for Live Online Events with Web Captioner A First Look at the Websites and Software Applications Accessibility Act Bill Style with Stateful, Semantic Selectors How I Doubled My Lighthouse Performance Score in One Night How to Fix Your Low-Contrast Text Build a Twitch Chatbot for Sharing Your Content Using Algolia Search Ben’s Humane Guide to Technical Blogging On the ‹dl› Takeaways From “Adapting Comics for Blind and Low Vision Readers: A Roundtable Discussion” Takeaways From Axe-Con 2021 I Finally Understand Eleventy’s Data Cascade. RSS Readers: Yet Another Case for Semantic Markup Implement a Skip Link for Navigation-Heavy Sites aria-label, aria-labelledby, and aria-describedby: What’s the Difference? Out With The Old, In With The New Maintaining Focus Outlines for Windows High Contrast Mode Lexical and Dynamic Scope CSS Can Influence Screenreaders New Year, New Terminal: Alias Your Directories the Unix Way New Year, New Terminal: Alias Your Directories the Windows Way What Is ARIA? The Accessibility Tree How (Not) to Build a Button How Domino’s Could Topple the Accessible Web – Part 1: Public Accommodations
The Curious Case of “iff” and Overriding Screenreader Pronunciations
Ben Myers · 2023-07-31 · via Ben Myers

I recently responded to a call for accessibility guidance on Mastodon. The author, a logician, frequently includes the abbreviation iff — short for “if and only if” — in his writing. He’d recently tested his content with a screenreader and found that iff sounded exactly like “if,” and he wanted some help making sure iff sounded distinct.

In logic, if versus iff is a very meaningful distinction. To borrow an example from Wikipedia, if Madison will eat a fruit if it’s an apple, then she’ll definitely eat any apples she comes across, but bananas or oranges are still fair game. On the other hand, if Madison will eat a fruit iff (if and only if) it’s an apple, then she’ll still eat any apple she comes across, but bananas and oranges are off the menu. Mistaking an if for an iff here, or vice versa, can mean entirely misinterpreting what a formal logic statement is saying.

While developers might reach for approaches such as ARIA attributes or the ol’ “visible-but-aria-hidden node plus the visually-hidden, screenreader-friendlier alternative node” one–two punch to try to force a particular pronunciation, the conventional accessibility wisdom here is instead to not override screenreader pronunciations at all, for a number of reasons. These override attempts often make braille display output much harder to read, and they can make it much harder to use other assistive technologies such as voice control as well. Crucially, overrides usually come from a place of assuming (and generally vastly underestimating) screenreader users’ familiarity with their screenreader’s pronunciation quirks and their comfort with their screenreader’s verbosity settings and navigation modes.

Is iff a special case? Does the possible confusion with if necessitate markup hacks to try and force a different pronunciation? I don’t know, and I’m genuinely not here to say. I think only user testing can give that judgment call. Instead, I’d like to propose a few steps one could take before using markup hacks to override screenreader pronunciations. If you’re dealing with your own case where you think a pronunciation override might be best, consider whether one of these options could work for you instead.

Let It Be

For logicians who use screenreaders, your iff is probably not the first iff they’ve come across, and it certainly won’t be the last. The same goes for other mathematicians, programmers, and other professions that rely on special symbols to communicate meaning.

In many cases, screenreader users with expertise in these fields have approaches for making sense of these symbols already. This might be inferring meaning from context, retreading the confusing text letter-by-letter, ratcheting up their screenreader’s verbosity settings when they know they’re in a symbol-heavy context, or leaning on custom pronunciation rules they’ve added to their screenreader for such a situation.

It’s also worth evaluating how serious the pronunciation quirk really is. When I worked at USAA, it was an occasional topic of conversation that the JAWS screenreader would pronounce USAA as “oosa.” As much as USAA would have liked to be pronounced correctly for brand reasons (and maybe that can be a reality someday with CSS Speech), internal accessibility subject matter experts, including some who are blind, generally advised against markup hacks, in part because anyone who was hearing “oosa” would figure out what that meant pretty quickly anyways. It was no more harmful than a GPS mispronouncing a street name — you chuckle for a bit, and then you move on with your day.

All this to say, your readers who use screenreaders may very likely already have techniques for dealing with unusual symbols, abbreviations, or pronunciation quirks, or those quirks might not be as critical as you might think at first, and so there might not be anything you have to do at all.

Still Let It Be, But Provide Some Guidance

The above might work just fine for someone who already has enough familiarity with a field to know how best to make sense of its text, but what about situations where someone might be coming in fresh such as a college course?

One option might be recommending your readers set up custom pronunciation rules in their own screenreaders. Here’s a few articles and tutorials you could point them to:

It might be worth setting up a page where you provide guidance on adding custom pronunciation rules to one’s screenreader, along with a list of recommended rules for common confusing phrases you intend to use. From there, you’d just need to make sure that page is somehow discoverable, perhaps linked to from an accessibility statement. This has the advantage of fully empowering the reader to decide if and how to use the rules. Maybe they won’t add any rules at all — or maybe, they’ll decide that iff should be pronounced as “if F,” or “I F F,” or “if and only if.” Instead of you going through the work to hack the markup and slot users into whichever pronunciation you feel is right, you instead give readers the tools they can use to build whichever reading experience is best for them.

For what it’s worth, USAA has one such list of suggested custom pronunciation rules, which includes USAA, as well as abbreviations that are common in banking and insurance.

Rephrase and Unabbreviate

In some cases, you might be able to reword the text to avoid a contentious, confusing phrase altogether. In the case of iff, you might not be able to avoid it entirely in formal logic statements, but what about the surrounding prose? In many cases, it could be clearer to write out “if and only if” in full. In addition to being more explicit and not relying on pronunciation rules, verbosity settings, or markup hacks to get the point across, it’s also visually more distinct. If someone is scanning a page or reading quickly, iff is pretty easy to mistake for if, and that’s before adding low vision or dyslexia into the mix. In this case, the instinct to reach for a screenreader-specific hack could be a sign that this content is confusing or hard to read for lots of people in general.

Even if you can’t avoid all instances of the confusing text, you can still get some lift from rephrasing that minimizes the need for markup hacks elsewhere. Occasionally including the long form of an abbreviation alongside its short form, for instance, a la “intravenous (IV)” or the other way around, “iff (if and only if),” can be a subtle yet handy reminder to readers that possibly confusing abbreviations are in play, so they should be extra careful when reading the page. This is also a handy tactic for meeting the Web Content Accessibility Guidelines’ Success Criterion 3.1.4 Abbreviations (Level AAA).

Conclusion

Markup hacks meant to force a particular pronunciation in screenreaders often arise from incomplete understandings of how screenreader users navigate the web and unvalidated assumptions about how they would prefer to receive information, and they can shape a user experience at the expense of braille display users, voice control users, and more. Before reaching for a pronunciation hack, consider if it’s really necessary or worth the complexity you’re adding to your site, or if there are ways to rework the content or design to add clarity and avoid needing the hack in the first place.

Additionally, validate assumptions! If you can, get feedback from screenreader users. It may well be that they find leaving those phrases as they are really is confusing and untenable! I personally don’t believe we can avoid screenreader-specific hacks 100% of the time. If (and only if 😜) your user testing shows such hacks are necessary for comprehension, then by all means go ahead!