[whatwg] Can we deprecate alert(), confirm(), prompt() ?
Ian Hickson
ian at hixie.ch
Thu Jun 9 00:49:06 PDT 2011
On Tue, 1 Mar 2011, Ojan Vafai wrote:
>
> FWIW, chromium is planning on experimenting with disallowing modal
> dialogs during the beforeunload/unload events.
> http://code.google.com/p/chromium/issues/detail?id=68780
Please let us know how this goes, so I can update the spec accordingly (to
at least allow this, or maybe require it, depending on how other browser
vedors feel about this).
On Tue, 1 Mar 2011, Robert O'Callahan wrote:
>
> That sounds fairly unpleasant for users of pages which give "are you
> sure you want to leave this page and lose your data?" warnings.
Presumably this would continue to work, indeed.
On Tue, 1 Mar 2011, WeBMartians wrote:
> On 2011-02-28 19:42, Ian Hickson wrote:
> > On Thu, 25 Nov 2010, Biju wrote:
> > > 2. if we are still keeping them, can we disable them in
> > > onbeforeunload/onunload[/onhide] etc. Many sites add extra dialogs
> > > in those events to confuse users, so that they can trap users for
> > > little longer.
> > That's not a bad idea. I recommend approaching the browser vendors to
> > see if they are willing to implement it; if they do, then updating the
> > spec accordingly would be a no-brainer.
>
> I agree that the various traps put in place are exceptionally annoying.
> An alternative would be a forced closing via the browser rather than
> some modification of the behavior of Javascript. That would side step
> the question of "Have you covered all of the annoying cases
> (onbeforeunload, on unload, on hide...)?".
Well the browser is always allowed to just close things willy nilly, sure.
> > > 3. also if we are keeping them, can we add an optional parameter for
> > > a timeout milliseconds to self dismiss the modal prompt.
> > What's the use case?
>
> For comment 3, simply reference the use cases for Microsoft's AfxMsgBox,
> ::MessageBox and its derivatives. The time out is a well-received idea.
On Tue, 1 Mar 2011, Aryeh Gregor wrote:
>
> Timeouts on dialogs are typically a terrible idea, and we shouldn't
> encourage them. They mean that if the user wasn't paying attention --
> which could just mean they were looking at another tab, in browsers with
> tab-modal dialogs -- they never see the dialog. This is only useful in
> the case where the dialog is so useless you don't actually care if the
> user doesn't see it, in which case, why show it? In practice, authors
> often add timeouts to things that they expect the user to see, leaving
> the user confused if they don't wind up seeing it. IIRC, one of the
> nice little improvements I made to MediaWiki a few years ago was
> removing the last of the timed redirects from it.
>
> OS APIs are much more enthusiastic about permitting programmers to shoot
> themselves in the foot than web APIs. Microsoft specifically also cares
> much more about developers and less about users, because they depend on
> developers to write Windows-only apps and maintain Microsoft's lock-in,
> while users are forced to buy Windows anyway. Browsers, on the other
> hand, care very strongly about users, because users can easily switch to
> another browser at any time, while developers (authors) don't help or
> hurt them much as long as they write cross-browser code. So for
> multiple reasons, the fact that Windows supports something doesn't mean
> we should. You need to give actual specific use-cases, not just cite
> the fact that the feature exists in Windows.
I have to agree with Aryeh here.
On Tue, 1 Mar 2011, WeBMartians wrote:
>
> Aryeh! You have made an ad-hominem attack: shame on you! I mention the
> Microsoft use cases only to save space. There are similar cases in the
> Linux and Macintosh realms. Judge an idea by its merits, not by its
> source (even if that source is as disreputable as I certainly am).
The existence of an API is not a use case (and Aryeh's comments weren't an
ad hominem attack -- the only attack, if any, was in the description of
timer-based messaging APIs as "terrible", but he backed that up with sound
reasoning).
> You are correct that short duration time outs are, often, a terrible
> idea ... but the standard should not hobble the developer. Terrible
> ideas are a matter of opinion; my ideas are always grand and glorious,
> never terrible ... just ask me ... for I never lie and am always right.
It's our job to filter out the bad ideas.
> ...and consider this: just how would you handle the case in which the
> WWWeb page says:
>
> There is an approaching storm!
> Do you wish to close the dykes?
> No (let everybody drown)
> Yes (if you don't answer in an hour, this will be the default)
>
> To say that the WWWeb should not be used for this is in itself a
> terrible idea for you know that it will be used in this manner and
> neither of us can prevent such stupidities.
I think this kind of thing might be reasonable to have, but the way to do
that is probably more using a non-modal inline dialog, so that the script
can react to the storm's sudden growth or disappearance as well.
On Tue, 1 Mar 2011, Aryeh Gregor wrote:
> On Mon, Feb 28, 2011 at 7:42 PM, Ian Hickson <ian at hixie.ch> wrote:
> > Well we can't remove support for them from browsers, since millions of
> > pages use them. Conformance checkers can't really complain about usage
> > of those APIs, since they can't easily check JavaScript runtime
> > compliance. So what would deprecating them mean?
>
> We could define script APIs, or features of them, as deprecated if
> browsers were willing to log some kind of notice to their error consoles
> when the feature is used. They all have error consoles with different
> reporting levels already, so it shouldn't be a pain for them to
> implement. They can have the deprecation warnings off by default so
> they don't clutter the output. At least Firefox already does this for
> some things, like document.getSelection() (although that message will
> probably go away in a future release).
>
> Of course, this would only be useful if we had a good alternative to
> recommend. "Don't use alert(), use some giant JavaScript library
> instead" is unlikely to be a very helpful message. But it would be nice
> for some of the crazier or more horrible APIs, if they have saner
> replacements.
Do we have any data on whether these warnings have any useful effect?
--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the whatwg
mailing list