Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resolve "Object element rendering non-text content has non-empty accessible name" feedback #479

Open
11 tasks
maryjom opened this issue Aug 28, 2020 · 6 comments

Comments

@maryjom
Copy link
Collaborator

maryjom commented Aug 28, 2020

Object element rendering non-text content has non-empty accessible name

See complete Survey results.
Survey results briefly discussed in the 6 August ACT meeting and then again in the 13 August ACT meeting.

Wilco

  • Seems to me object might be decorative, in which case an empty accessible name is appropriate. I can't think why someone might have a decorative object in their page, so I think it's a reasonable assumption, but it needs to be documented.
    Mary Jo agreed, saying: Should document the assumption that the object being injected is not decorative.
  • Seems to me like the type of content should effect what SC this is applied to. If you load in an HTML page, it seems to me like this shouldn't be treated as non-text content.
  • From meeting: this rule maps to 1.1.1 assuming object is loading non-text content. Loading an HTML page is not non-text content. Think mapping is wrong. For video, this would map to 1.1.1. Other pages would be different.
  • From meeting: H53 technique does not work in Chrome. There is some inconsistency in this rule and WCAG. @wilco said he would open an issue with WCAG about H53.

Charu

  • Seems like implementation data can be improved with more examples of different ways alternative text can be added.

Mary Jo

  • Would screen readers expect the object element to have a text alternative (short description) even if an HTML object was injected? I think that's the only outlier here. If not, then the rule would have to detect when HTML is being injected and consider that an inapplicable case (if that's possible) or have an accompanying manual rule to check and make that object inapplicable.
  • I agree with Kathy and Charu that more variety of objects are needed for the test cases, including one that embeds a document object. To Kathy's point, this web page (https://www.htmlquick.com/reference/tags/object.html) has examples of using the object element to embed various things: HTML document types, Flash, and an image with alternative text. So examples could draw from that.

Detlev

Moe

  • Grammatical error in Accessibility Support: "Non supported" should be "Non-supported"
  • It would help in Failure examples 1, 2, and 4 to give a further explanation as to why the example fails.
    -- 1. because title is empty
    -- 2. because the span element with id="label" is empty
    -- 4. because it does not provide an accessible name in its title, an aria-label or aria-labelledby

Kathy

  • H53: Using the body of the object element (https://www.w3.org/WAI/WCAG21/Techniques/html/H53.html) to provide the text alternative. None of the test cases have text or text alternatives (all are .mp3). It would be good to include different types of content in the objects.
@maryjom
Copy link
Collaborator Author

maryjom commented Aug 28, 2020

@carlosapaduarte

@carlosapaduarte
Copy link
Contributor

carlosapaduarte commented Sep 4, 2020

A pull request was created to address these comments: act-rules/act-rules.github.io#1441

  • Added assumption about decorative objects.
  • Applies only to image, audio or video resources to meet SC 1.1.1
  • From our tests, H53 won't work in any recent browser
  • We couldn't find further ways to add the accessible name to an object
  • Tested, with VoiceOver, objects that inject HTML documents. The object is announced as a frame. If the object has an accessible name, VO reads it. If the object does not have an accessible name, but the document has a title, this is read by VO (in Chrome and Firefox) as the accessible name (but the object does not have an accessible name in the accessibility trees). If there is no accessible name nor title in the HTML document, the frame is announced without name. In Safari, VO never announces the accessible name.
  • Updated some examples to inject other types of objects (images and HTML documents)
  • Fallback content does not generate an accessible name, so I don't think we should promote its use with examples
  • Corrected grammatical error
  • Update failed examples descriptions with further information

@carlosapaduarte
Copy link
Contributor

PR act-rules/act-rules.github.io#1441 has been merged, addressing the points raised.

Object element has non-empty accessible name

See complete Survey results.
Survey results briefly discussed in the 6 August ACT meeting and then again in the 13 August ACT meeting.

Wilco

  • Seems to me object might be decorative, in which case an empty accessible name is appropriate. I can't think why someone might have a decorative object in their page, so I think it's a reasonable assumption, but it needs to be documented.
    Mary Jo agreed, saying: Should document the assumption that the object being injected is not decorative.

Added assumption about decorative objects.

  • Seems to me like the type of content should effect what SC this is applied to. If you load in an HTML page, it seems to me like this shouldn't be treated as non-text content.
  • From meeting: this rule maps to 1.1.1 assuming object is loading non-text content. Loading an HTML page is not non-text content. Think mapping is wrong. For video, this would map to 1.1.1. Other pages would be different.

Applies only to image, audio or video resources to meet SC 1.1.1

  • From meeting: H53 technique does not work in Chrome. There is some inconsistency in this rule and WCAG. @wilco said he would open an issue with WCAG about H53.

From our tests, H53 won't work in any recent browser

Charu

  • Seems like implementation data can be improved with more examples of different ways alternative text can be added.

We couldn't find further ways to add the accessible name to an object

Mary Jo

  • Would screen readers expect the object element to have a text alternative (short description) even if an HTML object was injected? I think that's the only outlier here. If not, then the rule would have to detect when HTML is being injected and consider that an inapplicable case (if that's possible) or have an accompanying manual rule to check and make that object inapplicable.

Tested, with VoiceOver, objects that inject HTML documents. The object is announced as a frame. If the object has an accessible name, VO reads it. If the object does not have an accessible name, but the document has a title, this is read by VO (in Chrome and Firefox) as the accessible name (but the object does not have an accessible name in the accessibility trees). If there is no accessible name nor title in the HTML document, the frame is announced without name. In Safari, VO never announces the accessible name.

  • I agree with Kathy and Charu that more variety of objects are needed for the test cases, including one that embeds a document object. To Kathy's point, this web page (https://www.htmlquick.com/reference/tags/object.html) has examples of using the object element to embed various things: HTML document types, Flash, and an image with alternative text. So examples could draw from that.

Updated examples to inject other types of objects (images and HTML documents)

Detlev

  • I wonder whether an example fallback content should appear - but note w3c/wcag#1138
    Would using fallback content pass this role? Cover the use of fallback content either in the intro text or an explicit (pass? Fail?) example.

Fallback content does not generate an accessible name, so I don't think we should promote its use with examples

Moe

  • Grammatical error in Accessibility Support: "Non supported" should be "Non-supported"

Corrected grammatical error

  • It would help in Failure examples 1, 2, and 4 to give a further explanation as to why the example fails.
    -- 1. because title is empty
    -- 2. because the span element with id="label" is empty
    -- 4. because it does not provide an accessible name in its title, an aria-label or aria-labelledby

Update failed examples descriptions with further information

Kathy

  • H53: Using the body of the object element (https://www.w3.org/WAI/WCAG21/Techniques/html/H53.html) to provide the text alternative. None of the test cases have text or text alternatives (all are .mp3). It would be good to include different types of content in the objects.

Updated examples to inject other types of objects (images and HTML documents)

@maryjom
Copy link
Collaborator Author

maryjom commented Oct 6, 2020

Survey open until 22 October.

@maryjom
Copy link
Collaborator Author

maryjom commented Nov 10, 2020

Survey results being discussed during 12 November meeting.

@maryjom maryjom changed the title Resolve "Object element has non-empty accessible name" feedback Resolve "Object element rendering non-text content has non-empty accessible name" feedback Jan 27, 2021
@maryjom
Copy link
Collaborator Author

maryjom commented Jan 27, 2021

Changed title of this issue to match the current rule title.
Discussed survey results during 12 Nov. meeting and made a resolution.

Comments from survey:

Kathy Eng

  • "The object element is not rendered for presentational purposes." may not be necessary, or assume that decorative object elements are correctly marked as decorative.
  • Should Background include - Testing that the object is correctly marked as decorative is not part of this rule and must be tested separately
  • address decorative objects in assumption or background or both

Mary Jo Mueller

  • Suggested edit to the assumptions: "If the object is decorative, it is marked as such so it is rendered presentational by being marked as decorative." Then I think the second assumption sentence may not need to be there.
  • Address the assumptions. Also looks like Trevor has some concerns to address as far as autoplay goes.

Trevor Bostic

  • The object element seems to automatically set autoplay for videos and audio. This becomes a problem on example where the audio or video starts autoplaying, but is either off-screen or not visible, so there are no controls to stop the media. This would be caught by the audio and video rule we have been looking at.
  • May need to consider adding some words about the autoplaying examples without reachable controls. Should we link to the other rule? Should we still consider passed example 4 as passed? etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants