#33728: Tab order should match visual order for admin model forms’ submit
buttons
-------------------------------------+-------------------------------------
Reporter: Thibaud Colas | Owner: Alexander
Type: | Freyr Lúðvíksson
Cleanup/optimization | Status: closed
Component: contrib.admin | Version: dev
Severity: Normal | Resolution: fixed
Keywords: accessibility, | Triage Stage: Ready for
keyboard, ux | checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 1
-------------------------------------+-------------------------------------
Comment (by awiebe):
Replying to [comment:3 Mariusz Felisiak]:
> I agree that it's confusing. The situation is even more complicate on
edit views where we also have a `Delete` button. Moreover we need to
remember about RTL languages. I'd reorder the buttons as follows:
> - LTR: `Save`, `Save and add another`, `Save and continue editing`,
`Delete`,
> - RTL: `Delete`, `Save and continue editing`, `Save and add another`,
`Save`,
> maybe with a small visual space before/after `Delete` (but I'm not a
designer).
I believe this is incorrect, because a delete button should not be in the
position of the confirm button in every other GUI paradigm ever. I am
disappointed as a designer and a programmer in how this was handled.
(1)In LTR Paradigms
1. Cancel is on the **right** if the resulting action could be considered
**detrimental if performed accidentally**
2. Confirm is on the right if this is normally desirable and easy to undo
if performed in error.
3. The ''auxiliary'' and/or ''destructive'' option is absolutely **NEVER
EVER** in the right most slot, i.e. the usual place of the confirm button.
4. The "auxiliary action" is opposite the main actions intentionally this
is why "delete" was on the left, opposite where confirm buttons are in
every program.
5. The save button being the most common action found itself right-most,
if you disagree with this placement, add an option, but don't just change
it on a whim.
(2)An experimental change should not modify a legacy behaviour without the
consent of the end-user. This is more often cited in in APIs but is just
as relevant in UI.
1. If you want to experiment with a new layout then, you should make it an
option first, do not immediately roll it into a release.
2. If the option should be off by default. If in a later version you turn
it on by default because the community generally accepts it as good, you
should still leave it in as an option for legacy customers who do not want
it.
Please remedy the situation by adding something to the effect of
{{{
class ModelAdmin:
class Meta:
action_button_placement="classic" # or "reversed"
#settings.py
DJANGO_ADMIN=
{
"action_button_layout":"classic"
}
}}}
For **reference** I have attached a **google image result for confirm
cancel dialogs**. To show typical orderings, which do not include the one
which was mainlined.
--
Ticket URL: <https://code.djangoproject.com/ticket/33728#comment:10>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/010701898f54db5b-f63eb45a-f28e-4f3e-9181-88bb4406ca67-000000%40eu-central-1.amazonses.com.