Can someone explain to me the purpose of the "Compare selected versions" Javascript? It makes no sense to me, and it really slows down the page for me. When I try to compare two versions, I have to wait a long time for the page to change to reflect my selections.
Conceptually, I don't see the purpose. It is perfectly legal to compare any two versions of the article. So turning on and off radio buttons adds nothing to the functionality of the page, as far as I can understand anyway.
I think I understand the difficulty with having a single line of checkboxes or radio buttons... when you have 2 checked already, and the user clicks a 3rd, how to interpret what they want? Presumably they want to have unchecked one of the others, but which one?
But the current solution strikes me as inelegant.
--Jimbo
Jimmy (Jimbo) Wales wrote:
Can someone explain to me the purpose of the "Compare selected versions" Javascript? It makes no sense to me, and it really slows down the page for me. When I try to compare two versions, I have to wait a long time for the page to change to reflect my selections.
Presumably, it's to automatically submit the form instead of requiring the user to hunt down a "submit" button that might be 100 lines away.
...
Since last I really looked, though, somebody has turned it into a nighmarish concoction of evil that magically appears and disappears radio buttons, and removed the auto-submit. (It was annoying when it was auto-submit after clicking checkboxes, because checkboxes don't normally behave that way, but this is even worse.) And yes, it takes *forever* in Safari at least.
Any objection to ripping it out and replacing it with good old fashioned normal radio buttons?
-- brion vibber (brion @ pobox.com)
Brion Vibber wrote:
Presumably, it's to automatically submit the form instead of requiring the user to hunt down a "submit" button that might be 100 lines away.
Right, that was the old way. This was not evil. As you note below, it was annoying but understandable.
Since last I really looked, though, somebody has turned it into a nightmarish concoction of evil that magically appears and disappears radio buttons, and removed the auto-submit.
"nightmarish concoction of evil" :-) Well, at least I am not alone. My usual style of course is to be more reserved than that with criticisms, but sure, since you said it first... ;-)
Any objection to ripping it out and replacing it with good old fashioned normal radio buttons?
None from me, but there probably are some user interface subtleties here. What we want to do is allow people to pick exactly 2 items from a list, and to my knowledge, no standard user interface item does exactly that.
--Jimbo
On Jul 19, 2004, at 5:51 PM, Jimmy (Jimbo) Wales wrote:
Brion Vibber wrote:
Presumably, it's to automatically submit the form instead of requiring the user to hunt down a "submit" button that might be 100 lines away.
Right, that was the old way. This was not evil. As you note below, it was annoying but understandable.
Since last I really looked, though, somebody has turned it into a nightmarish concoction of evil that magically appears and disappears radio buttons, and removed the auto-submit.
"nightmarish concoction of evil" :-) Well, at least I am not alone. My usual style of course is to be more reserved than that with criticisms, but sure, since you said it first... ;-)
Any objection to ripping it out and replacing it with good old fashioned normal radio buttons?
None from me, but there probably are some user interface subtleties here. What we want to do is allow people to pick exactly 2 items from a list, and to my knowledge, no standard user interface item does exactly that.
not to be evil, but how about this... a javascript that automatically disables the other checkboxes when 2 or more are checked... not siappears them, but merely grays them out?? is that possible to do in a cross-platform way? maybe even a pop up dialog explaining whats goin on (this sounds annoying though)/
Will
--Jimbo _______________________________________________ Wikitech-l mailing list Wikitech-l@wikimedia.org http://mail.wikipedia.org/mailman/listinfo/wikitech-l
On Mon, 19 Jul 2004 18:10:09 -0400, Creative Chemistry orders@creativechemistry.net wrote:
not to be evil, but how about this... a javascript that automatically disables the other checkboxes when 2 or more are checked... not siappears them, but merely grays them out??
If they are disabled, then it's impossible to correct a mistake if you chose the wrong two versions - you'd have to reload the page.
Similarly if you hit the Back button and return - the two radio buttons (not checkboxes, currently) will still be selected and so the others are disabled and you can't choose any others. Not good IMO.
Cheers, Philip
Jimmy (Jimbo) Wales wrote:
Brion Vibber wrote:
Any objection to ripping it out and replacing it with good old fashioned normal radio buttons?
None from me, but there probably are some user interface subtleties here. What we want to do is allow people to pick exactly 2 items from a list, and to my knowledge, no standard user interface item does exactly that.
The easiest way is to just rip out the javascript bit: use two plain columns of radio buttons, as UseMod does, without worrying too much. It's impossible to select more than two, and we can handle zero or one relatively gracefully with a last-version diff or error message.
-- brion vibber (brion @ pobox.com)
Brion Vibber wrote:
The easiest way is to just rip out the javascript bit: use two plain columns of radio buttons, as UseMod does, without worrying too much. It's impossible to select more than two, and we can handle zero or one relatively gracefully with a last-version diff or error message.
Yay! I like it.
I'll only be happy when the web gets back to 1997, anyway.
--Jimbo
Am Mon, 19 Jul 2004 15:28:28 -0700 hat Jimmy (Jimbo) Wales jwales@wikia.com geschrieben:
Brion Vibber wrote:
The easiest way is to just rip out the javascript bit: use two plain columns of radio buttons, as UseMod does, without worrying too much. It's impossible to select more than two, and we can handle zero or one relatively gracefully with a last-version diff or error message.
Yay! I like it.
I'll only be happy when the web gets back to 1997, anyway.
Some recent things haven't worked out bad though ;-). Else, I agree.
--Jimbo _______________________________________________ Wikitech-l mailing list Wikitech-l@wikimedia.org http://mail.wikipedia.org/mailman/listinfo/wikitech-l
On Tue, 20 Jul 2004 08:05:27 +0200, tic@tictric.net tic@tictric.net wrote:
Am Mon, 19 Jul 2004 15:28:28 -0700 hat Jimmy (Jimbo) Wales jwales@wikia.com geschrieben:
Yay! I like it. I'll only be happy when the web gets back to 1997, anyway.
Some recent things haven't worked out bad though ;-). Else, I agree.
I'm all for backwards compatibility, graceful degradation, et cetera. I try to make everything I write compatible with Lynx. ;)
On Mon, 19 Jul 2004 15:19:13 -0700, Brion Vibber brion@pobox.com wrote:
The easiest way is to just rip out the javascript bit: use two plain columns of radio buttons, as UseMod does, without worrying too much. It's impossible to select more than two, and we can handle zero or one relatively gracefully with a last-version diff or error message.
By way of summarising my rather verbose post: it's even easier than you imply, since all that needs doing is removal of the display-related JavaScript - the rest will carry on working fine. There's even HTML attributes to tell the browser which ones should start checked, so unless someone *really* tried they couldn't select less than two anyway. The only error condition is selecting the same one twice, and that doesn't actually cause the software any pain, it just reports that there aren't any differences!
Rowan Collins wrote:
There's even HTML attributes to tell the browser which ones should start checked, so unless someone *really* tried they couldn't select less than two anyway.
Never assume that. Never assume any browser works in any way you want, and never assume malicious users might not send erroneous POST requests by themselves. If you make assumptions, the cases you assume are impossible can in some cases give rise to an exploit.
Timwi
On Tue, 20 Jul 2004 00:33:55 +0100, Timwi timwi@gmx.net wrote:
Never assume that. Never assume any browser works in any way you want, and never assume malicious users might not send erroneous POST requests by themselves. If you make assumptions, the cases you assume are impossible can in some cases give rise to an exploit.
OK, fair enough - but note that a browser that ignores the HTML 'checked' attribute is unlikely to support JavaScript in any real sense anyway. Also note that the form isn't even a POST request, just a way of filling the <foo> and <bar> values in the '...&diff=<foo>&oldid=<bar>' URL - whatever the form does, the actual diff code needs to be impervious to all sorts of strange values in there, because people can type them straight in their address bar. In fact, it seems to do rather well - my thoroughly mixed up test http://en.wikipedia.org/w/wiki.phtml?title=Wikipedia%3ACopyrights&diff=4... (which refers to three articles at once, in different ways) actually has a fairly sane outcome. So, too, does just deleting one of the values; and deleting both just leaves you looking at the current version.
In other words, as one would hope, the arguments are validated on processing, not on input.
Jimmy (Jimbo) Wales wrote:
Can someone explain to me the purpose of the "Compare selected versions" Javascript? It makes no sense to me, and it really slows down the page for me. When I try to compare two versions, I have to wait a long time for the page to change to reflect my selections.
Well, I don't know why it would be slow for you (it's fine for me), but I do agree that the whole making radio buttons appear and disappear is probably quite superfluous.
We used to have a system where we had just a row of checkboxes, and as soon as you had clicked two, it would load the diff, without requiring you to click a button. I wonder why we didn't keep that? I preferred that. Then again, it is conceivable that it might not have worked in older browsers, or some people might have thought it was unintuitive?
I can't think of any better methods. The only other possibilities I see are pretty rubbish.
Timwi
Timwi timwi@gmx.net wrote:
We used to have a system where we had just a row of checkboxes, and as soon as you had clicked two, it would load the diff, without requiring you to click a button. I wonder why we didn't keep that? I preferred that. Then again, it is conceivable that it might not have worked in older browsers, or some people might have thought it was unintuitive?
As one of the people who was far from happy with that previous system, I will outline some of the things that were wrong with it: * it was possible to select more than two articles if a) you were quick enough or b) you clicked the browser's back button * it was impossible to use in any browser that did not have JavaScript enabled (including old ones, text-based ones, ones belonging to the security paranoid, etc) * a self-submitting form gives you no chance to change your mind, or even work out what the boxes mean, before it starts processing your "selection" * check-boxes don't normally work like that, so people won't be expecting that to happen [OK, so this point's more subjective than the others]
The current system uses a far more standard set of UI elements - a set of radio buttons is defined as only having one selected at a time, and people are used to that behaviour. So to select two of them, you have two columns - easy! When somebody [Gabriel?] made a working implementation of this, they added a bit of interface sugar where you don't see both columns of radio buttons at the same time - but it's not actually essential to the working of the interface, thus giving the smooth degradation without JavaScript that the previous implementation lacked.
In other words, the "evilness" is just somebody's idea of how to make the solution *look* nicer. Functionally, it is the same as, say, UseMod's equivalent [1], and the looks would be almost identical too, if you turned off JavaScript (or, probably, if you did some clever user-sub-page override). In my opinion, this is about as elegant a solution (technically) as standard UI elements (and portable HTML) allow. At first, I thought the disappearing radio buttons were a bit odd, then I came to like the idea, but if they slow down browsers (presumably because they're having to re-render large parts of the page, and aren't very good at it) then we may need to look at disabling the JavaScript part and just letting people see both columns all the way down.
[1]:e.g. http://www.usemod.com/cgi-bin/mb.pl?action=history&id=MeatballWiki
I can't think of any better methods. The only other possibilities I see are pretty rubbish.
No... If you were dead-set on check boxes I suppose you could have manual submission, and a fall-back to a message complaining that you'd selected too many or too few (with JavaScript making that impossible, if enabled). But that's quite a bit more complex than just having a standard HTML form that essentially lets the browser do all that for you.
Rowan Collins wrote:
- it was possible to select more than two articles if a) you were
quick enough or b) you clicked the browser's back button
This happened to me a lot. I usually only use the feature when I am investigating some quarrel, and that usually requires me to compare many different versions so that I can understand what happened. To get around this, I often had to deselect everything and start over, or reload the page.
So clearly, it is desirable that hitting the back button doesn't lead to anything annoying like this.
- it was impossible to use in any browser that did not have JavaScript
enabled (including old ones, text-based ones, ones belonging to the security paranoid, etc)
*nod*
- a self-submitting form gives you no chance to change your mind, or
even work out what the boxes mean, before it starts processing your "selection"
*nod*
- check-boxes don't normally work like that, so people won't be
expecting that to happen [OK, so this point's more subjective than the others]
Sure, I agree, even with your "backing off" point. It is a little bit astonishing to people, but I'm not sure if this was really really bad.
The current system uses a far more standard set of UI elements - a set of radio buttons is defined as only having one selected at a time, and people are used to that behaviour.
Agreed.
It seems like radio buttons are the right way to go, but the "interface sugar" should go away. That's what Brion has suggested, and I like it.
I think people do expect radio buttons in this case, and I think people do not expect radio buttons to magically appear and disappear. It makes me want to cry, anyway.
--Jimbo
Rowan Collins rowan.collins@gmail.com writes:
I alos like the current implementation more than the previous one; my main arguments are:
- a self-submitting form gives you no chance to change your mind, or
even work out what the boxes mean, before it starts processing your "selection"
I was often bitten by this annoyance.
- check-boxes don't normally work like that, so people won't be
expecting that to happen [OK, so this point's more subjective than the others]
I "hate" misbehaving UI widgets.
Timwi schrieb:
We used to have a system where we had just a row of checkboxes, and as soon as you had clicked two, it would load the diff, without requiring you to click a button. I wonder why we didn't keep that? I preferred that.
Me too. I don't know how unintuitive it is for a newbie, but I think it was the perfect solution for the regular user.
Kurt
I absolutely detested the old way, of automatic loading On Netscape 6.2 on Linux, it loaded pages automatically upon checking/unchecking (any action). I always got page loads when I didn't want them, having to stop the many autoloads of diffs I didn't want while swearing outloud. I was *very thankful* for the new interface where a button-press was required.. The auto-switching of radio buttons is a little freaky though. That I can certainly do without.
Timwi said:
Jimmy (Jimbo) Wales wrote:
We used to have a system where we had just a row of checkboxes, and as soon as you had clicked two, it would load the diff, without requiring you to click a button. I wonder why we didn't keep that? I preferred that. Then again, it is conceivable that it might not have worked in older browsers, or some people might have thought it was unintuitive?
On Mon, 2004-07-19 at 13:46 -0700, Jimmy (Jimbo) Wales wrote:
Can someone explain to me the purpose of the "Compare selected versions" Javascript? It makes no sense to me, and it really slows down the page for me. When I try to compare two versions, I have to wait a long time for the page to change to reflect my selections.
The main reasons for it are:
* Order columns so that left/right in the diff view reflects left/right in the selection columns * Prevent the user from selecting two identical versions
It's purely cosmetical and not in any way involved in the form submission or similar, so it works just fine without.
The speed problem should be solvable by improving the diffcheck() function (can be done by overriding the function in Monobook.js).
wikitech-l@lists.wikimedia.org