Skip to content

Replacing non-streaming audio with live audio #1661

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

Open
wants to merge 15 commits into
base: develop
Choose a base branch
from

Conversation

carlosapaduarte
Copy link
Member

Updating 'audio element content has text alternative' (#e7aa44) so that it no longer uses the non-streaming definition which was found to be inaccurate

I'm looking for comments on:

  • The appropriateness of the expectation in the new atomic rule that checks if the audio content is live
  • Suggestions on resources to use for the passed example

After getting this change approved I'll open a new PR changing the other rules that also use the non-streaming definition

Need for Final Call:
This will require a 2 weeks Final Call


How to Review And Approve

  • Go to the “Files changed” tab
  • Here you will have the option to leave comments on different lines.
  • Once the review is completed, find the “Review changes” button in the top right, select “Approve” (if you are really confident in the rule) or "Request changes" and click “Submit review”.
  • Make sure to also review the proposed Final Call period. In case of disagreement, the longer period wins.

@carlosapaduarte carlosapaduarte added Rule Update Use this label for an existing rule that is being updated Rule Use this label for a new rule that does not exist already reviewers wanted labels Jun 25, 2021
@ajanec01
Copy link
Collaborator

I must've missed that part, what's inaccurate with "non-streaming"?

@carlosapaduarte
Copy link
Member Author

This: #1446 (comment)

- playing; or,
- has a "play button" that is [visible][] and [included in the accessibility tree][].

**Note:** A play button is an interactive element that when activated, plays the audio.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're trying to cut down on notes these days. Should that be moved to a definition?
Maybe "play button" = "instrument to play a media"?


## Expectation

The target element's [media resource](https://html.spec.whatwg.org/multipage/media.html#media-resource) is being broadcasted in real time without being first recorded and stored on the origin server.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"real time" is maybe a bit too strong since many "lives" are actually delayed by a few seconds to give editor an emergency hatch in case of accidents (broadcast delay).

Which does open a can of worms of what "live" actually means. WCAG's definition does mention the broadcast delay, so we should definitely accept it. But then how long of a broadcast delay is enough to be considered "pre recorded" and require captions… ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changing the expectation.


## Background

- [Understanding SC 1.2.1:Audio-only and Video-only (Prerecorded)](https://www.w3.org/WAI/WCAG21/Understanding/audio-only-and-video-only-prerecorded)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are many SC about pre recorded media. We should list all or none (or maybe you plan to add the rest when the atomic rule is added to the other composites)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I'll address this one after sorting out this rule.

This rule applies to every `audio` element that is:

- playing; or,
- has a "play button" that is [visible][] and [included in the accessibility tree][].
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This may be an artefact of the composite we currently work on. I am not sure about this condition. The rule could be very generic on any playing media.
Of course, not clear whether it's easier to first work on the specific version for this composite and then extend, or try to come up with the generic version immediately…

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It sounds reasonable to have an atomic for all media, but I'll also address this after sorting this rule first.


#### Passed Example 1

This `audio` element plays a live media resource.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree that it is hard to find an institutional live media (audio or video)…
My best shot would be some "tourist" webcam that might be set up by cities or states (i.e. not private companies) and thus we could arguably endorse…

Something like https://www.skylinewebcams.com/en/live-cams-category/city-cams.html but we need to make sure of who is sharing the content 🤔

@carlosapaduarte carlosapaduarte self-assigned this Jul 16, 2021
@carlosapaduarte carlosapaduarte requested a review from Jym77 July 16, 2021 19:28
Jym77
Jym77 previously requested changes Jul 22, 2021

## Expectation

The target element's [media resource](https://html.spec.whatwg.org/multipage/media.html#media-resource) is being broadcasted in real time without being first recorded and stored on the origin server.
For each test target one of the following is true:
- it is not possible to [seek][] the end of the target element's [media resource][]; or
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like that 👍
OTOH, I'm not sure it's possible to "not be possible to seek". The algorithm seems to always return (possibly after doing nothing). Would that rather be part of the second bullet (and so the first can be removed)?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe you are correct. I've updated the expectation accordingly.

@carlosapaduarte
Copy link
Member Author

Updated rule, now with a working example.


This `audio` element plays a live media resource by streaming the audio from the device's microphone.

This example requires a browser supporting the experimental MediaStreamTrack API. The browser must be authorized to access a microphone. You can successfully test this example on Google Chrome with the flag --enable-blink-features=WebCodecs,MediaStreamInsertableStreams
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should (also) put that text inside the HTML page of the example itself.
That way, (manual) testers that navigate to the example's page (without necessarily going through the ACT rules page) would be able to see that text and act accordingly.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This now seems related to #1679 since "give access to your mic" sounds a bit like a test instruction 🤔

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Moved the note to the example so that manual testers are aware of the instructions
  • Added a test instructions section after the description of the example


#### Passed Example 1

This `audio` element plays a live media resource by streaming the audio from the device's microphone.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, have you tested that by "seeking" the end, to make sure this matches the expectation?
Wondering if the "seek" bit should be used also in examples descriptions 🤔

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just found that MediaStream is not seekable! https://w3c.github.io/mediacapture-main/#mediastreams-in-media-elements
I will add this to the expectation and the example's description.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And I suppose this lands us again exactly where we were before... needing to find a live stream that we can use in the example 😞

@carlosapaduarte carlosapaduarte removed the Rule Use this label for a new rule that does not exist already label Feb 28, 2022
</script>
</html>
```

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am assuming we are expanding these passed examples with real streaming audios/videos of broadcasting orgs, right?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That was the main idea.

As was also mentioned in TPAC, we might want to explore the possibility of W3C hosting a streaming server where we could serve the examples (we would just loop one of the videos we already use).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Rule Update Use this label for an existing rule that is being updated
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants