<object> elements must have alternate text
All embedded objects must have text alternatives to be read out to screen reader users.
Why it Matters
Screen readers have no way of translating non-text content into text announced to users. Instead, they read out alternative text. For screen reader users to obtain the information contained in embedded
object elements which must contain short, descriptive alternative text.
object element defines an embedded object within a document. It is used to embed multimedia (audio, video, applets, etcetera.) or another web page into the document. The object element needs a text alternative so that users of screen readers know the contents of the object.
When writing a text alternative, keep in mind that the purpose of the alternative text is to relay information to blind users about the image’s contents and purpose – blind users should be able to get as much information from alternative text as a sighted user gets from the image. Alternative text should give the intent, purpose, and meaning of the image.
When writing alternative text, it’s helpful to keep the following questions in mind:
- Why is the non-text content here?
- What information is it presenting?
- What purpose does it fulfill?
- If I could not use the non-text content, what words would I use to convey the same information or function?
Be sure that all text contained in this attribute is useful. Words like “chart”, “image”, “diagram”, or image file names tend not to be very useful.
How to Fix the Problem
Add alternative text to all embedded
<object> elements using either inner text,
object-alt rule has six examples that pass analysis:
<object id="pass1">This object has text.</object> <object id="pass2" title="This object has text"></object> <object id="pass3" aria-label="this object has text"></object> <span id="label1">this object has text</span> <object id="pass4" aria-labelledby="label1"></object> <object id="pass5" role='presentation'></object> <object id="pass6" role='none'></object>
object-alt rule has three examples that fail analysis:
<object id="violation1"></object> <object id="violation2"><div> </div></object> <object id="violation3"><p style="display: none;">This object has no text.</p></object>
The Algorithm (in simple terms)
Ensures that every
object element has a text alternative.