Be wary when adding additional context only for #screenReader users. An example:
Say you're working on an e-commerce site, and some products have two prices to show how great a sale discount is. The before and after is made visually apparent via some aspect of text formatting, and you want to make it explicit for screen reader users too.
The first step is to ask if this is necessary. If a user encounters two consecutive prices and one is lower than the other, they may intuitively understand what's going on without any explicit signposting, and can verify how much they're gonna pay during the checkout process. Only your users can provide this verdict.
If it's determined that some additional context is helpful, you could format it as something like: "Was $14.99, now $8.99" (optionally swapping the prices). It's short and punchy in braille and speech, perfectly descriptive of the situation at hand, and mirrors how it may be spoken out loud on an ad.
Resist the temptation to go further than this. You do not need to say "original price: $14.99, current sale price: $8.99". This is much longer and more verbose, while adding nothing. It also implies that you think screen reader users need to be told what a price is and explained the concept of a sale, even though you're not doing so for other audiences.
You also don't need to spell out the word "dollars", format the price in words, repeat the product name, and so on. If you find yourself with screen-reader-only text like: "The current price of 500 Grams of Premium Oolong Tea was fourteen dollars and ninety-nine cents, and is now on sale for eight dollars and ninety-nine cents", it has gone way too far.
In short: Set out to identify the problems that actually need solving, and only solve those problems.
@jscholes What screen readers besides NVDA indicate strikethrough, especially by default? I know NVDA says deleted, which is slightly confusing at first, but having it read out the basic visual indicator of this is a price which has a line through it and this is the new price right next to it is reasonable and works for everyone, as long as there's enough of a semantic space or the screen reader puts one between the font changes to avoid the actual numbers blending. Unsure how this is indicated in Braille, though. Do the tables have an indicator for strikethrough?
@x0 Not really sure on any of this; I must admit to having those formatting indications disabled because I find them quite irritating. I also think that FS received complaints after exposing them by default in JAWS and ended up rolling back the change, but don't quote me on that.
@x0 @jscholes
Here's an article about that, data last updated in September 2023.
Screen Readers support for text level HTML semantics.
The <del> element is announced by JAWS, NVDA, and iOS VoiceOver; when style reporting is enabled, macOS VoiceOver and Windows Narrator announce its default strikethrough styling.
https://www.tpgi.com/screen-readers-support-for-text-level-html-semantics/
@cwilcox808 @jscholes Thanks for the resource!