It's always best to start with semantic HTML elements such as <time>
or <abbr>
but unfortunately there isn't good screen reader support for those elements at this time (no pun intended).
Note: <abbr>
was not mentioned in the OP but was just another example of a semantic HTML that doesn't have good screen reader support.
That doesn't mean you shouldn't use those elements but for now you'll have to work around the lack of support. For the <time>
element, it can often be read correctly by screen readers, especially if you use the datetime
attribute.
However, your original question didn't sound like the time itself was a problem but rather you wanted to add extra text to be read and you're currently doing that via aria-label
. I would not recommend aria-label
for that purpose. This type of question comes up quite a bit and you can see my thoughts (which are based on w3.org documentation) regarding aria-label
on answers to these similar questions:
The gist of it is aria-label
works best on interactive elements and landmarks.
If you want to add extra text for a screen reader to announce but not be visible on the page, you can use a "sr-only" type class. (The "sr-only" class is also mentioned in the "Screen reader reading out group..." answer link above.)
<span class="sr-only">Arrives at </span>
<time dateTime={arriveAt}>{value}</time>