Search code examples
htmltimeaccessibilityscreen-readersnvda

NVDA screen reader ignores time element


In a calendar I use abbreviated date/time formats. To make it screenreader-friendly I use the time element, as recommended in a lot of articles and posts. But somehow NVDA just ignores it.

For example, it reads "Fr. 13." no matter if I use the datetime attribute or not. And it always reads it wrong (13 franc, meaning Swiss franc).

<time datetime="2023-02-13T00:00:00+0100">
        Fr. 13. 00:00 Uhr
</time>

Besides ISO Date I tried using different datetime formats. Makes no difference.

I know that there are workarounds. Using aria labels for example. But if possible I want it to work that way, because as far as I know it should and aria is to be avoided whenever possible.


Solution

  • None of the major screen readers specially handle <time> currently, as far as I know.

    However, you should't be afraid about your text being not spoken exactly as you wish, and you shouldn't try to add a special label if it's just to enhance the pronunciation to your own liking.

    • Interpretation of dates, numbers, etc. and how they are spoken differ between screen readers and voices used. By adding a label to fix the pronunciation, you may help for one particular configuration, but do more harm than good for all other.
    • What you think should be spoken is maybe not what a VI user would like to be spoken in the same situation; the best is to make a real test with VI people to find out if it's a real problem or not.
    • As VI users, we are used to pronounciation issues, and we aren't stupid; we can most of the time still understand what you really mean anyway
    • Screen readers include pronunciation dictionaries allowing to customize what we don't like