Unchain My Inaccessibly-Labelled Heart
aria-labelledby attribute? It chains two IDs from the markup, one for the heading (
#article1-heading) and one for the link (
#article1-read-more). What happens there is a screenreader will replace the existing semantic label between the link tags and use the content from both elements and announce them together as a single string of text:
I’m always sheepish when realizing there’s something I think I should know but don’t. This is definitely one of those cases and I’m thankful as all heck that Suzy shared it.
And this is only a thing when the text you want to use for the accessible label already exists on the page. Otherwise, you’d want to go with
aria-label and with the caveat that it’s purely for interactive elements that are unable to label things accessibly with semantic HTML.
If you are working in a CMS like WordPress (which I am), you might need to do a little extra work. Like when I drop a Button block on the page, these are the options I have to work with:
Some nice options in there, but nothing to do with accessible labelling. If you’re wondering what’s buried in that Advanced panel:
Instead, you’ll need to edit the button in HTML mode:
But before doing that, you gotta add an ID to the heading you want to use. The Heading block has the same Advanced panel setting for adding an anchor, which’ll inject an ID on the element:
Then you can go edit the Button block in HTML mode and add the
accessible-labels ID as well as an ID for the button itself. This is an example of the edited markup:
Great! But WordPress just ain’t cool with that:
You can try to resolve the issue:
If you need help creating a digital marketing strategy for your business, don’t hesitate to contact one of Digidude’s consultants.