WICG / close-watcher

A web API proposal for watching for close requests (e.g. Esc, Android back button, ...)
https://html.spec.whatwg.org/multipage/interaction.html#close-requests-and-close-watchers
71 stars 5 forks source link

iPhones don't have a consistent system close/cancel/exit gesture #11

Closed othermaciej closed 2 years ago

othermaciej commented 2 years ago

iPhones don't have a consistent system close/cancel/exit gesture. Sometimes it's swipe down, sometimes it's swipe up, sometimes swipe sideways, sometimes it's an onscreen button. There's generally some kind of visual affordance that's specific to the particular scene being shown.

There's the home button or home affordance to return to the Home screen, but apps don't have the ability to override that.

That's not to say this API isn't useful but I'm not sure what the right thing to do would be on iOS. Don't expose the API at all? Expose, but close event never fires? Make up a close gesture for the web only (but then how would users know about it)?

(On iPad, Cmd+period is an equivalent to Escape that works even on the magic keyboard, but iPads can be used with no physical keyboard, and this key combination is somewhat obscure and mostly only known to old school Mac users).

othermaciej commented 2 years ago

Reading more closely, VoiceOver is cited, so maybe the expectation is the API exists but only does anything if VoiceOver is enabled?

domenic commented 2 years ago

Yeah, I think the ideal situation would be for the API to exist, but do nothing unless VoiceOver is enabled. That way, developers can use the API unconditionally across all platforms, and just not get any events on platforms like iPhones where there's no universal close signal.

As a bonus, if iPhones did decide to add some sort of universal (or at least web-universal) close signal in the future, then apps using this API could just start working with it. (Seems hard to imagine, but who knows... has anyone called dibs on ten-finger swipes yet??)

domenic commented 2 years ago

Note we are having some discussion about whether it makes sense for VoiceOver to trigger CloseWatcher directly, or should do so via synthesizing Esc key presses, at https://github.com/WICG/aom/issues/184 .

domenic commented 2 years ago

Based on discussions on the AOM call, the plan is to have accessibility tech synthesize Esc key presses, which then go through the usual close signal steps. I'll expand those steps to allow Esc key synthesis.

I'll also expand and update the platform-specific implementation notes, and link to them more prominently from the README, to make the question "what would it make sense for iOS to do?" more easily answerable.