Short description
This is a request to move the button bar at the end of the form in the Edit page.
Currently when editing a wiki page the form buttons appear above the text area.
Usually a user edits a page and slowly moves downwards through the form inputs. He puts a comment and now he has to return to the top to click on "Save"/"Preview". This unnecessary step even causes many users just to omit the comment box more often than if the button bar was below.
Here is a patch for PageEditor.py, which just moves the buttons-code at the bottom of the form.
(updated, see below)
In ancient moin versions, the buttons were below the form and they were moved to the top because of usability issues.
Probably we should think on moving the comment line to the top too for the same reason. Please could you add a new patch for that. -- ReimarBauer 2007-03-27 00:45:27
- What about the rest??
The category and Trivial change too
- Is the check box "Remove trailing whitespace from each line" really needed? Why aren't whitespaces removed by default? This would be better for unexperienced users (headings will work always then) and will remove some puzzeling extra check-box I have never used in my life..
hmm, that may depend on the parser which is used and I am currently not sure how it does support rtl languages. If its needed perhaps a better place could be in preferences. -- ReimarBauer 2007-03-28 10:52:04
That's a good idea, but even there it is puzzeling. Why not have some internal var in the ParserBase to indicate this need of stripping the raw code first before processing and outputting it? User's shouldn't be bothered with that decision in my eyes. Most won't understand this. I have been working on Moin quite a while now and I don't understand the need of this checkbox either(whether here or in the userprefs). -- OliverSiemoneit 2007-03-28 12:11:21
Somewhere is another feature request related on that (by me, but I haven't yet recovered it). removing that switch (reducing) is not essential for that feature request we have here. I think we agree both that all the controls and inputs have to be moved on top and not only the comment line or as before the save button only. -- ReimarBauer 2007-03-28 13:58:20
Most web forms on the WWW have the buttons at the bottom, because they are the last ones that require the user's attention. Think of tab index for example: the first tab should be the textarea, the second the comment box (the user knows what to put in the comment box *after* he has made the all the changes) and at the end of the user choices there should be the buttons. The above patch moves all buttons at the end of the form. -- DimitrisGlezos 2007-03-28
- That all was discussed before. So now we have started the useablity discussion again where we like to have the save buttons and its going round in circles.
I haven't participated in the original discussion about usability, sorry. My opinion is that the current situation and the one requested, in practice reduce usability more. Nevertheless, I am attaching two patches, one of which is the one you have asked for and the other one to have them above and below. My $.02. -- DimitrisGlezos 2007-03-30 12:34:27
If you look at the normal work flow of editing a page and if you think of keyboard navigation, which is crucial for AccessibleMoin, it sounds sensible to move the buttons down. P.S. Dimitris, you did a great job in redesigning the Fedora wiki a little bit. I like it very much. Maybe you can also have a look at ThemeMarket/SimpleMente and help testing the new accesskey support. -- OliverSiemoneit 2007-03-30 14:20:50
The Fedora wiki needed some usability love, I think it's in a better shape now. Simple Mente is an interesting approach on accessibility and I suggested it as a possible framework for the next Fedora wiki theme. I'll try to take a better look at it, Oliver. -- DimitrisGlezos 2007-03-31 08:15:12
I agree that, from a usability point of view (I wasn't neither in the original discussion and can't find it), the logical task/screen order is textarea, comment, action buttons. Dimitri, if you are interested, we can try it in Simple Mente theme and I'll test it with real users. -- EduardoMercovich 2007-10-11 14:29:39
I agree with the comments of those above that having the buttons below the comment box improves usability. In my opinion, the inconvenience for regular users of having to scroll back up to the top after adding their comment and the need to encourage users to enter comments for their edits are factors which outweigh any advantages of having the buttons on top. -- -- MatthewEast 2008-09-07 16:57:43
- That all was discussed before. So now we have started the useablity discussion again where we like to have the save buttons and its going round in circles.
Here is a patch requested to have both buttons and comment box on top:
--- PageEditorMoin.py 2007-03-25 22:50:12.000000000 +0100 +++ PageEditorUpall.py 2007-03-29 22:03:45.000000000 +0100 @@ -345,10 +345,17 @@ %s <input class="button" type="submit" name="button_cancel" value="%s"> <input type="hidden" name="editor" value="text"> ''' % (button_spellcheck, cancel_button_text,)) + self.request.write("<p>") + self.request.write(_("Comment:"), + ' <input id="editor-comment" type="text" name="comment" value="%s" maxlength="200"' + ' onChange="flgChange = true;" onKeyPress="flgChange = true;">' % ( + wikiutil.escape(kw.get('comment', ''), 1), )) + self.request.write("</p>") + # Add textarea with page text # TODO: currently self.language is None at this point. We have # to do processing instructions parsing earlier, or move page # language into meta file. @@ -366,17 +373,10 @@ 'dir': i18n.getDirection(lang), 'rows': text_rows, 'text': wikiutil.escape(raw_body) }) - self.request.write("<p>") - self.request.write(_("Comment:"), - ' <input id="editor-comment" type="text" name="comment" value="%s" maxlength="200"' - ' onChange="flgChange = true;" onKeyPress="flgChange = true;">' % ( - wikiutil.escape(kw.get('comment', ''), 1), )) - self.request.write("</p>") - # Category selection filter = re.compile(self.cfg.page_category_regex, re.UNICODE).search cat_pages = self.request.rootpage.getPageList(filter=filter) cat_pages.sort() cat_pages = [wikiutil.pagelinkmarkup(p) for p in cat_pages]
Here is another patch that puts buttons on the top and the bottom (similar to the first one proposed):
--- PageEditorMoin.py 2007-03-25 22:50:12.000000000 +0100 +++ PageEditorUpDownButtons.py 2007-03-29 22:04:08.000000000 +0100 @@ -329,25 +329,28 @@ 'cancel_button_text': cancel_button_text, 'license_link': wikiutil.getSysPage(self.request, self.cfg.page_license_page).link_to(self.request), }, '</em></p>') - self.request.write(''' + button_bar = [] + button_bar.append(''' <input class="button" type="submit" name="button_save" value="%s" onClick="flgChange = false;"> <input class="button" type="submit" name="button_preview" value="%s" onClick="flgChange = false;"> -''' % (save_button_text, _('Preview'),)) +''' % (save_button_text, _('Preview'))) if not (self.request.cfg.editor_force and self.request.cfg.editor_default == 'text'): - self.request.write(''' + button_bar.append(''' <input id="switch2gui" style="display: none;" class="button" type="submit" name="button_switch" value="%s"> -''' % (_('GUI Mode'),)) +''' % (_('GUI Mode'))) - self.request.write(''' + button_bar.append(''' %s <input class="button" type="submit" name="button_cancel" value="%s"> <input type="hidden" name="editor" value="text"> -''' % (button_spellcheck, cancel_button_text,)) +''' % (button_spellcheck, cancel_button_text)) + + self.request.write(''.join(button_bar)) # Add textarea with page text # TODO: currently self.language is None at this point. We have # to do processing instructions parsing earlier, or move page @@ -402,10 +405,11 @@ ''' % { 'checked': ('', 'checked')[form.get('rstrip',['0'])[0] == '1'], 'label': _('Remove trailing whitespace from each line') }) self.request.write("</p>") + self.request.write(''.join(button_bar)) badwords_re = None if preview is not None: if SpellCheck and ( form.has_key('button_spellcheck') or