immersive-web / model-element

Repository for the <model> tag. Feature leads: Marcos Cáceres and Laszlo Gombos
https://immersive-web.github.io/model-element/
Other
63 stars 11 forks source link

Adding "controls" #43

Open marcoscaceres opened 2 years ago

marcoscaceres commented 2 years ago

As with other media elements (again #13), having "controls" for media specific things can be extremely helpful for accessibility (and just generally helpful for developers not needing to deal with things like the fullscreen API).

It would be nice to consider adding support for controls and then leaving it mostly to the UA as to what those controls are... we could figure out a standard set of things, like <video> provides.

cabanier commented 2 years ago

Maybe this can be added in the later level of the spec? Adding system controls might interfere with script that doesn't expect that the user is making changes.

Also, afaik almost no sites use the built-in video controls

marcoscaceres commented 2 years ago

Adding system controls might interfere with script that doesn't expect that the user is making changes.

Sorry, could you elaborate what you mean by "the user making changes"? Also, how would it differ from, say,<video>?

Also, afaik almost no sites use the built-in video controls

I agree that well-resourced sites should absolutely have the ability to add their own controls. However, as with video/audio, there are significant advantages usability, accessibility, robustness, and just ease of use to not requiring scripting for controls (i.e. to the user agent providing them... whatever they may be...). It's also highly future proof, with the user agent being able to add device-specific controls as new capabilities become available to the user agent.

Personally speaking, when embedding videos on page, I've always relied on the browser to provide me with controls. For example, here is Github, controls are provided by the user agent:

https://user-images.githubusercontent.com/870154/183316380-367aae56-b94c-449f-ae2a-33d4c554ace0.mov

mrdoob commented 2 years ago

A 3D model can have more than one animation.

For example a game character can include walking, running and jumping animations.

The controls ui would then need to include a drop down to select the animation to play.

js-choi commented 2 years ago

Also, afaik almost no sites use the built-in video controls

Safari on iPhone, as far as I know, always displays native video controls in full-screen web <video> elements, even on pages that would otherwise provide their own control UI such as YouTube and Vimeo. This is allowed by the specification:

User agents may allow users to view the video content in manners more suitable to the user, such as fullscreen or in an independent resizable window. […] In such an independent viewing mode, however, user agents may make full user interfaces visible, even if the controls attribute is absent.

I suspect that any user agent that does this to video content would also would apply the same principles to 3D-model content.

marcoscaceres commented 2 years ago

@mrdoob wrote:

The controls ui would then need to include a drop down to select the animation to play.

Could definitely be in option. However, that might not work well unless the camera also moved to the right position so the user could view the animation.

Speaking hypotheticals here: I was thinking more if the format defined a "top-level" (or scene-level?) animation.

mikkoh commented 2 years ago

Actually if we're talking about 3D controls in terms of accessibility having directional buttons to tumble a model and + and - to zoom in and out is ideal for some users. So outside of animation control there may be other controls that need to be investigated.

ASFAIK the built in <video> controls haven't kept up with accessibility standards of today. I'm no a11y expert but folks who I've talked to have suggested that it's better to implement custom controls using other html elements. This leads me to wonder if decoupling the controls from the element is better because there maybe a faster innovation loop on UX for different a11y levels.

marcoscaceres commented 2 years ago

Right, but they are not mutually exclusive. You still want a minimal set of controls (or potentially a specialized set of controls) for some users, while being privacy preserving. Sites can still offer a rich set of HTML based controls, but some users should still be able to enable UA-provided controls should they desire or need them (or they simply choose to disable JS).

mikkoh commented 2 years ago

Agreed. I've found the minimal controls in videos to be valuable. Especially as a developer having the ability to test playback immediately is awesome.

AdaRoseCannon commented 2 years ago

I'm not sure if this totally the right thread but I can imagine users also wanting to attach a rotation to the scroll timeline such as when you scroll it rotates from the top view and then moves to the bottom

This may have interesting interactions with rotation controls

On Wed, 10 Aug 2022, 19:43 Mikko Haapoja, @.***> wrote:

Agreed. I've found the minimal controls in videos to be valuable. Especially as a developer having the ability to test playback immediately is awesome.

— Reply to this email directly, view it on GitHub https://github.com/immersive-web/model-element/issues/43#issuecomment-1211115856, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABAHSMT4HJGTN33GCTQ37VLVYPZ6HANCNFSM55Q6K63A . You are receiving this because you are subscribed to this thread.Message ID: @.***>

Malvoz commented 2 years ago

Linking https://w3c.github.io/apa/media-accessibility-reqs/#access-to-interactive-controls-menus