diff options
author | Mark Sapiro <mark@msapiro.net> | 2017-06-24 14:34:48 -0700 |
---|---|---|
committer | Mark Sapiro <mark@msapiro.net> | 2017-06-24 14:34:48 -0700 |
commit | c4c4c8007bf85afee71420576d343442e388f352 (patch) | |
tree | 47ab4b8d4be526bc7969f84b368b73201a432484 | |
parent | d79f8d317bf85d36ba9026c2f6830c6b6b60a4c2 (diff) | |
download | mailman2-c4c4c8007bf85afee71420576d343442e388f352.tar.gz mailman2-c4c4c8007bf85afee71420576d343442e388f352.tar.xz mailman2-c4c4c8007bf85afee71420576d343442e388f352.zip |
Added screen reader labels to some admindb radio buttons.
-rw-r--r-- | Mailman/Cgi/admindb.py | 25 | ||||
-rwxr-xr-x | Mailman/htmlformat.py | 12 | ||||
-rw-r--r-- | NEWS | 1 |
3 files changed, 14 insertions, 24 deletions
diff --git a/Mailman/Cgi/admindb.py b/Mailman/Cgi/admindb.py index 855c2e04..cc863306 100644 --- a/Mailman/Cgi/admindb.py +++ b/Mailman/Cgi/admindb.py @@ -95,8 +95,9 @@ def hacky_radio_buttons(btnname, labels, values, defaults, spacing=3): space = ' ' * spacing btns = Table(cellspacing='5', cellpadding='0') btns.AddRow([space + text + space for text in labels]) - btns.AddRow([Center(RadioButton(btnname, value, default)) - for value, default in zip(values, defaults)]) + btns.AddRow([Center(RadioButton(btnname, value, default).Format() + + '<div class=hidden>' + label + '</div>') + for label, value, default in zip(labels, values, defaults)]) return btns @@ -747,20 +748,14 @@ def show_post_requests(mlist, id, info, total, count, form): when = msgdata.get('received_time') if when: t.AddRow([Bold(_('Received:')), time.ctime(when)]) - t.AddCellInfo(row+2, col-1, align='right') - # We can't use a RadioButtonArray here because horizontal placement can be - # confusing to the user and vertical placement takes up too much - # real-estate. This is a hack! - buttons = Table(cellspacing="5", cellpadding="0") - buttons.AddRow(map(lambda x, s=' '*5: s+x+s, - (_('Defer'), _('Approve'), _('Reject'), _('Discard')))) - buttons.AddRow([Center(RadioButton(id, mm_cfg.DEFER, 1)), - Center(RadioButton(id, mm_cfg.APPROVE, 0)), - Center(RadioButton(id, mm_cfg.REJECT, 0)), - Center(RadioButton(id, mm_cfg.DISCARD, 0)), - ]) + t.AddCellInfo(row+3, col-1, align='right') + buttons = hacky_radio_buttons(id, + (_('Defer'), _('Approve'), _('Reject'), _('Discard')), + (mm_cfg.DEFER, mm_cfg.APPROVE, mm_cfg.REJECT, mm_cfg.DISCARD), + (1, 0, 0, 0), + spacing=5) t.AddRow([Bold(_('Action:')), buttons]) - t.AddCellInfo(row+3, col-1, align='right') + t.AddCellInfo(t.GetCurrentRowIndex(), col-1, align='right') t.AddRow([' ', '<label>' + CheckBox('preserve-%d' % id, 'on', 0).Format() + diff --git a/Mailman/htmlformat.py b/Mailman/htmlformat.py index 19f6457d..210150ed 100755 --- a/Mailman/htmlformat.py +++ b/Mailman/htmlformat.py @@ -318,15 +318,9 @@ class Document(Container): 'content="text/html; charset=%s">' % charset) if self.title: output.append('%s<TITLE>%s</TITLE>' % (tab, self.title)) - # This is a kluge to only add this style to the page that needs it. - parts = Utils.GetPathPieces() - if parts: - if len(parts) > 2 and parts[-1] not in ('add', 'remove', - 'change'): - parts[2] = 'list' - if (len(parts) == 2 and parts[1] == 'members' or - len(parts) > 2 and parts[1:3] == ['members', 'list']): - output.append("""\ + # Add CSS to visually hide some labeling text but allow screen + # readers to read it. + output.append("""\ <style type="text/css"> div.hidden {position:absolute; @@ -17,6 +17,7 @@ Here is a history of user visible changes to Mailman. - The admin Membership List now includes text for screen readers which identifies the function of each checkbox. CSS is added to the page to visually hide the text but still allow screan readers to read it. + Similar text has been added to some radio buttons on the admindb pages. Bug fixes and other patches |