- From: Ian Hickson <ian@hixie.ch>
- Date: Fri, 15 Jul 2011 18:34:07 +0000 (UTC)
On Wed, 6 Apr 2011, Andrew de Andrade wrote: > > Depending on the browser and device, permission will be asked either in > a bar across the top of the browser (Firefox and Chrome on the desktop) > or with a modal dialog (Safari on the desktop and on the iPhone). [...] > > As the creator of a site that uses geolocation, these two different > implementations of the permissions dialog concerns me. In my tests with > users, I've noticed that with Firefox and Chrome, many users don't > notice the bar across the top and thus features of the web application > end up crippled because the app doesn't have access to the user's > location and this degrades the user experience. As with all user interface choices browser vendors have to make, some work better than others. Different goals can result in different choices, too; for example, it might be the goal of one user agent to make it clear to the user that they should share their location, while another user agent might decide that it's better to the user have to explicitly look for a way to share their location, since then they won't do it by mistake. > [Proposal:] > 2) The HTML5 specification defines how browsers should implement this > consistently --> either a bar across the top OR modal dialog box, but > not both. It's user interface: we're not going to specify it. This is the kind of thing browsers can compete on. In any case, it's impractical: If we said it should be a non-modal graphical bar, how would a browser that doesn't have a screen but instead reads everything out using speech synthesis do it? If we said it had to be a red icon, what about browsers targeting cultures where the colour "red" is considered offensive? If we said that the user agent should offer the option to give the user's location or no location, what about users that want to lie about their location? There are just too many possible variables here to define the UI, even if we wanted to. > 3) Each browser chooses their default interface approach (bar or modal > dialog), but the Geolocation API specification allows for the webapp > developer to override this default. This doesn't work because those options might not be available in the first place. What if the operating system the browser is running on doesn't have the concept of a modal dialog? What if it's a line-driven text browser, with no concept of a non-modal alert? > Those apps for which location is essencial for the user experience can > choose to always display a modal dialog box before the user proceeds to > use the webapp. What if the user never wants a dialog? On Wed, 6 Apr 2011, Peter Kasting wrote: > > If users don't notice or understand the geolocation prompts in a > particular browser, I think the appropriate response is to provide > feedback to the browser vendor that users are not successfully > navigating their UI. Indeed. On Fri, 8 Apr 2011, Rich Tibbett wrote: > Biju wrote: > > What I want from browser vendors is make > > navigator.geolocation.getCurrentPosition and > > navigator.geolocation.watchPosition ONLY callable from a CLICK event. > > I thought we all learned lesson from window.open popups > > window.open is still entirely underspecified in standards when it comes > to its behavior in trusted vs. non-trusted click event invocation. The > first thing somebody would need to is document how window.open works > according to different modes of invocation. Then at least we would have > a model to be able to discuss for other similar scenarios. The HTML spec defines this, but in a somewhat wishy-washy way intended to allow UAs to experiment with different constraints. Is this something that needs defining more precisely? In general I haven't specified this in detail because the model of trusting user clicks doesn't work (due to clickjacking attacks). -- Ian Hickson U+1047E )\._.,--....,'``. fL http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Friday, 15 July 2011 11:34:07 UTC