[dw-free] standardize tabbing order on log in pages
[commit: http://hg.dwscoalition.org/dw-free/rev/d86351cb41c6]
http://bugs.dwscoalition.org/show_bug.cgi?id=784
Accessibility measure. Tab order is now in this order across all login
forms: 1. User name 2. Password 3. remember me 4. Login/submit button 5.
OpenID 6. Forgot your password
Patch by
jadelennox.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=784
Accessibility measure. Tab order is now in this order across all login
forms: 1. User name 2. Password 3. remember me 4. Login/submit button 5.
OpenID 6. Forgot your password
Patch by
Files modified:
- cgi-bin/LJ/Widget/Login.pm
- cgi-bin/bml/scheme/blueshift.look
- cgi-bin/bml/scheme/celerity.look
- cgi-bin/bml/scheme/gradation-vertical.look
- cgi-bin/weblib.pl
--------------------------------------------------------------------------------
diff -r cbd9cd34e06c -r d86351cb41c6 cgi-bin/LJ/Widget/Login.pm
--- a/cgi-bin/LJ/Widget/Login.pm Sun Dec 13 10:14:41 2009 +0000
+++ b/cgi-bin/LJ/Widget/Login.pm Sun Dec 13 11:49:04 2009 +0000
@@ -59,23 +59,36 @@ sub render_body {
if ($hook_rv) {
$ret .= $hook_rv;
} else {
+ # TabIndex
+ # tab indexes start at 11, instead of 1, in order to make
+ # the mid-page tab indexes start AFTER the login
+ # information in the site header in all of the non-lynx
+ # site schemed pages. Possibly this should be replaced
+ # with a tabindex variable which is scoped by page
+ # instead of by widget.
$ret .= "<h2>" . LJ::Lang::ml('/login.bml.login.welcome', { 'sitename' => $LJ::SITENAMESHORT }) . "</h2>\n";
$ret .= "<fieldset class='pkg nostyle'>\n";
$ret .= "<label for='user' class='left'>" . LJ::Lang::ml('/login.bml.login.username') . "</label>\n";
- $ret .= "<input type='text' value='$user' name='user' id='user' class='text' size='18' maxlength='27' style='' />\n";
+ $ret .= "<input type='text' value='$user' name='user' id='user' class='text' size='18' maxlength='27' style='' tabindex='11' />\n";
$ret .= "</fieldset>\n";
$ret .= "<fieldset class='pkg nostyle'>\n";
$ret .= "<label for='lj_loginwidget_password' class='left'>" . LJ::Lang::ml('/login.bml.login.password') . "</label>\n";
- $ret .= "<input type='password' id='lj_loginwidget_password' name='password' class='lj_login_password text' size='20' maxlength='30' /><a href='$LJ::SITEROOT/lostinfo' class='small-link'>" . LJ::Lang::ml('/login.bml.login.forget2') . "</a>\n";
+ $ret .= "<input type='password' id='lj_loginwidget_password' name='password' class='lj_login_password text' size='20' maxlength='30' tabindex='12' /><a href='$LJ::SITEROOT/lostinfo' class='small-link' tabindex='16'>"
+ . LJ::Lang::ml('/login.bml.login.forget2')
+ . "</a>\n";
$ret .= "</fieldset>\n";
- $ret .= "<p><input type='checkbox' name='remember_me' id='remember_me' value='1' tabindex='4' /> <label for='remember_me'>Remember me</label></p>";
+ $ret .= "<p><input type='checkbox' name='remember_me' id='remember_me' value='1' tabindex='13' /> <label for='remember_me'>Remember me</label></p>";
# standard/secure links removed for now
my $secure = "<p>";
$secure .= "<img src='$LJ::IMGPREFIX/padlocked.gif' class='secure-image' width='20' height='16' alt='secure login' />";
$secure .= LJ::Lang::ml('/login.bml.login.secure') . " | <a href='$LJ::SITEROOT/login?nojs=1'>" . LJ::Lang::ml('/login.bml.login.standard') . "</a></p>";
- $ret .= "<p><input name='action:login' type='submit' value='" . LJ::Lang::ml('/login.bml.login.btn.login') . "' /> <a href='$LJ::SITEROOT/openid/' class='small-link'>" . LJ::Lang::ml('/login.bml.login.openid') . "</a></p>";
+ $ret .= "<p><input name='action:login' type='submit' value='"
+ . LJ::Lang::ml('/login.bml.login.btn.login')
+ . "' tabindex='14' /> <a href='$LJ::SITEROOT/openid/' class='small-link' tabindex='15'>"
+ . LJ::Lang::ml('/login.bml.login.openid')
+ . "</a></p>";
if (! $LJ::IS_SSL) {
my $login_btn_text = LJ::ejs(LJ::Lang::ml('/login.bml.login.btn.login'));
diff -r cbd9cd34e06c -r d86351cb41c6 cgi-bin/bml/scheme/blueshift.look
--- a/cgi-bin/bml/scheme/blueshift.look Sun Dec 13 10:14:41 2009 +0000
+++ b/cgi-bin/bml/scheme/blueshift.look Sun Dec 13 11:49:04 2009 +0000
@@ -108,7 +108,8 @@ accountlinks<=
size => 20,
maxlength => 27,
tabindex => 1,
- }) . " <a href='$LJ::SITEROOT/openid/'>$ML{'sitescheme.accountlinks.login.openid'}</a></td></tr>";
+ raw => 'aria-required="true"',
+ }) . " <a href='$LJ::SITEROOT/openid/' tabindex=5>$ML{'sitescheme.accountlinks.login.openid'}</a></td></tr>";
$ret .= "<tr><td><label for='login_password'>$ML{'sitescheme.accountlinks.login.password'}</label></td>";
$ret .= "<td class='input-cell' colspan='2'>" . LJ::html_text({
type => "password",
@@ -116,7 +117,8 @@ accountlinks<=
id => "login_password",
size => 20,
tabindex => 2,
- }) . " <a href='$LJ::SITEROOT/lostinfo'>$ML{'sitescheme.accountlinks.login.forgotpassword'}</a></td></tr>";
+ raw => 'aria-required="true"',
+ }) . " <a href='$LJ::SITEROOT/lostinfo' tabindex=6>$ML{'sitescheme.accountlinks.login.forgotpassword'}</a></td></tr>";
$ret .= "<tr><td> </td>";
$ret .= "<td class='remember-me-cell'>";
$ret .= LJ::html_check({
diff -r cbd9cd34e06c -r d86351cb41c6 cgi-bin/bml/scheme/celerity.look
--- a/cgi-bin/bml/scheme/celerity.look Sun Dec 13 10:14:41 2009 +0000
+++ b/cgi-bin/bml/scheme/celerity.look Sun Dec 13 11:49:04 2009 +0000
@@ -98,7 +98,8 @@ accountlinks<=
size => 20,
maxlength => 27,
tabindex => 1,
- }) . " <a href='$LJ::SITEROOT/openid/'>$ML{'sitescheme.accountlinks.login.openid'}</a></td></tr>";
+ raw => 'aria-required="true"',
+ }) . " <a href='$LJ::SITEROOT/openid/' tabindex=5>$ML{'sitescheme.accountlinks.login.openid'}</a></td></tr>";
$ret .= "<tr><td><label for='login_password'>$ML{'sitescheme.accountlinks.login.password'}</label></td>";
$ret .= "<td class='input-cell' colspan='2'>" . LJ::html_text({
type => "password",
@@ -106,7 +107,8 @@ accountlinks<=
id => "login_password",
size => 20,
tabindex => 2,
- }) . " <a href='$LJ::SITEROOT/lostinfo'>$ML{'sitescheme.accountlinks.login.forgotpassword'}</a></td></tr>";
+ raw => 'aria-required="true"',
+ }) . " <a href='$LJ::SITEROOT/lostinfo' tabindex=6>$ML{'sitescheme.accountlinks.login.forgotpassword'}</a></td></tr>";
$ret .= "<tr><td> </td>";
$ret .= "<td class='remember-me-cell'>";
$ret .= LJ::html_check({
diff -r cbd9cd34e06c -r d86351cb41c6 cgi-bin/bml/scheme/gradation-vertical.look
--- a/cgi-bin/bml/scheme/gradation-vertical.look Sun Dec 13 10:14:41 2009 +0000
+++ b/cgi-bin/bml/scheme/gradation-vertical.look Sun Dec 13 11:49:04 2009 +0000
@@ -107,7 +107,8 @@ accountlinks<=
size => 20,
maxlength => 27,
tabindex => 1,
- }) . " <a href='$LJ::SITEROOT/openid/'>$ML{'sitescheme.accountlinks.login.openid'}</a></td></tr>";
+ raw => 'aria-required="true"',
+ }) . " <a href='$LJ::SITEROOT/openid/' tabindex=5>$ML{'sitescheme.accountlinks.login.openid'}</a></td></tr>";
$ret .= "<tr><td><label for='login_password'>$ML{'sitescheme.accountlinks.login.password'}</label></td>";
$ret .= "<td class='input-cell' colspan='2'>" . LJ::html_text({
type => "password",
@@ -115,7 +116,8 @@ accountlinks<=
id => "login_password",
size => 20,
tabindex => 2,
- }) . " <a href='$LJ::SITEROOT/lostinfo'>$ML{'sitescheme.accountlinks.login.forgotpassword'}</a></td></tr>";
+ raw => 'aria-required="true"',
+ }) . " <a href='$LJ::SITEROOT/lostinfo' tabindex=6>$ML{'sitescheme.accountlinks.login.forgotpassword'}</a></td></tr>";
$ret .= "<tr><td> </td>";
$ret .= "<td class='remember-me-cell'>";
$ret .= LJ::html_check({
diff -r cbd9cd34e06c -r d86351cb41c6 cgi-bin/weblib.pl
--- a/cgi-bin/weblib.pl Sun Dec 13 10:14:41 2009 +0000
+++ b/cgi-bin/weblib.pl Sun Dec 13 11:49:04 2009 +0000
@@ -2887,8 +2887,8 @@ LOGIN_BAR
$ret .= "</td></tr>";
$ret .= "<tr><td valign='top'>";
- $ret .= "<a href='$LJ::SITEROOT/lostinfo'>$BML::ML{'web.controlstrip.login.forgot'}</a>";
- $ret .= " <a href='$LJ::SITEROOT/openid/'>$BML::ML{'web.controlstrip.login.openid'}</a>";
+ $ret .= "<a href='$LJ::SITEROOT/lostinfo' tabindex='6'>$BML::ML{'web.controlstrip.login.forgot'}</a>";
+ $ret .= " <a href='$LJ::SITEROOT/openid/' tabindex='5'>$BML::ML{'web.controlstrip.login.openid'}</a>";
$ret .= "</td><td style='font: 10px Arial, Helvetica, sans-serif;' valign='top' colspan='2' align='right'>";
$ret .= "<input type='checkbox' id='xc_remember' name='remember_me' style='height: 10px; width: 10px;' tabindex='3' />";
$ret .= "<label for='xc_remember'>$BML::ML{'web.controlstrip.login.remember'}</label>";
--------------------------------------------------------------------------------
