[LON-CAPA-cvs] cvs: loncom /interface loncommon.pm lonhtmlcommon.pm resetpw.pm

raeburn raeburn at source.lon-capa.org
Fri Feb 14 17:42:06 EST 2025


raeburn		Fri Feb 14 22:42:06 2025 EDT

  Modified files:              
    /loncom/interface	resetpw.pm lonhtmlcommon.pm loncommon.pm 
  Log:
  - WCAG 2 compliance.
  
  
-------------- next part --------------
Index: loncom/interface/resetpw.pm
diff -u loncom/interface/resetpw.pm:1.52 loncom/interface/resetpw.pm:1.53
--- loncom/interface/resetpw.pm:1.52	Fri Feb 14 19:01:11 2025
+++ loncom/interface/resetpw.pm	Fri Feb 14 22:42:05 2025
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Allow access to password changing via a token sent to user's e-mail. 
 #
-# $Id: resetpw.pm,v 1.52 2025/02/14 19:01:11 raeburn Exp $
+# $Id: resetpw.pm,v 1.53 2025/02/14 22:42:05 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -289,12 +289,13 @@
         $js.= "\n".'<script src="https://www.google.com/recaptcha/api.js"></script>'."\n";
     }
     my $header = &Apache::loncommon::start_page('Reset password',$js,$args).
-                 '<h2>'.&mt('Reset forgotten LON-CAPA password').'</h2>';
+                 '<div class="LC_landmark" role="banner">'.
+                 '<h2 class="LC_heading_2">'.&mt('Reset forgotten LON-CAPA password').'</h2></div>';
     my $output;
     if ($token) {
-        $r->print($header);
+        $r->print($header.'<div class="LC_landmark" role="main">');
         &reset_passwd($r,$token,$contact_name,$contact_email,$clientip,\%passwdconf);
-        $r->print(&Apache::loncommon::end_page());
+        $r->print('</div>'.&Apache::loncommon::end_page());
         return OK;
     } elsif ($udom) {
         if (!$domdesc) {
@@ -418,7 +419,7 @@
     } else {
         $output = &get_uname($server,$defdom,\%passwdconf);
     }
-    $r->print($header.$output);
+    $r->print($header.'<div class="LC_landmark" role="main">'.$output.'</div>');
     $r->print(&Apache::loncommon::end_page());
     return OK;
 }
@@ -450,13 +451,13 @@
     my $onchange = 'javascript:verifyDomain(this,this.form);';
     $msg .= '<form name="forgotpw" method="post" action="/adm/resetpw" onsubmit="return validInfo();">'.
             &Apache::lonhtmlcommon::start_pick_box().
-            &Apache::lonhtmlcommon::row_title($lt{'udom'}).
-            &Apache::loncommon::select_dom_form($defdom,'udom',undef,undef,$onchange).
+            &Apache::lonhtmlcommon::row_title('<label for="udom">'.$lt{'udom'}).'</label>').
+            &Apache::loncommon::select_dom_form($defdom,'udom',undef,undef,$onchange,'','','','udom').
             &Apache::lonhtmlcommon::row_closure(1).
-            &Apache::lonhtmlcommon::row_title($lt{'unam'}).
+            &Apache::lonhtmlcommon::row_title('<label for="uname">'.$lt{'unam'}.'</label>').
             '<input type="text" name="uname" size="20" autocapitalize="off" autocorrect="off" />'.
             &Apache::lonhtmlcommon::row_closure(1).
-            &Apache::lonhtmlcommon::row_title($lt{'uemail'}).
+            &Apache::lonhtmlcommon::row_title('<label for="useremail">'.$lt{'uemail'}.'</label>').
             '<input type="text" name="useremail" size="30" autocapitalize="off" autocorrect="off" />'.
             &Apache::lonhtmlcommon::row_closure(1);
     unless ($passwdconf->{'captcha'} eq 'notused') {
Index: loncom/interface/lonhtmlcommon.pm
diff -u loncom/interface/lonhtmlcommon.pm:1.415 loncom/interface/lonhtmlcommon.pm:1.416
--- loncom/interface/lonhtmlcommon.pm:1.415	Mon Oct 21 14:16:11 2024
+++ loncom/interface/lonhtmlcommon.pm	Fri Feb 14 22:42:05 2025
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common html routines
 #
-# $Id: lonhtmlcommon.pm,v 1.415 2024/10/21 14:16:11 raeburn Exp $
+# $Id: lonhtmlcommon.pm,v 1.416 2025/02/14 22:42:05 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -2080,7 +2080,7 @@
 
         if ($lasttext ne '') {
             $links .= &htmltag( 'li', htmltag($CourseBreadcrumbs ? 'b' : 'h1',
-                    $lasttext), {title => $lasttext});
+                    $lasttext));
         }
 
         my $icons = '';
@@ -2155,9 +2155,8 @@
 
         # Return the breadcrumb's line
 
-    
-
-        return "$links";
+        my $labeltext = &HTML::Entities::encode(&mt('Links for navigation and information'));
+        return '<div class="LC_landmark" role="navigation" aria-label="'.$labeltext.'">'.$links.'</div>';    
     }
 
     sub clear_breadcrumbs {
@@ -2490,7 +2489,7 @@
 }
 
 sub row_title {
-    my ($title,$css_title_class,$css_value_class, $css_value_furtherAttributes) = @_;
+    my ($title,$css_title_class,$css_value_class,$css_value_furtherAttributes) = @_;
     $row_count[0]++;
     my $css_class = ($row_count[0] % 2)?'LC_odd_row':'LC_even_row';
     $css_title_class ||= 'LC_pick_box_title';
@@ -2503,9 +2502,9 @@
     }
     my $output = <<"ENDONE";
            <tr class="LC_pick_box_row" $css_value_furtherAttributes> 
-            <td $css_title_class>
+            <th $css_title_class>
 	       $title
-            </td>
+            </th>
             <td class="$css_value_class $css_class">
 ENDONE
     return $output;
Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.1452 loncom/interface/loncommon.pm:1.1453
--- loncom/interface/loncommon.pm:1.1452	Fri Feb 14 05:15:59 2025
+++ loncom/interface/loncommon.pm	Fri Feb 14 22:42:05 2025
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.1452 2025/02/14 05:15:59 raeburn Exp $
+# $Id: loncommon.pm,v 1.1453 2025/02/14 22:42:05 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -3075,7 +3075,7 @@
 
 =pod
 
-=item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc,$onchange,$incdoms,$excdoms,$disabled)
+=item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc,$onchange,$incdoms,$excdoms,$disabled,$id)
 
 Returns a string containing a <select name='$name' size='1'> form to 
 allow a user to select the domain to preform an operation in.  
@@ -3094,17 +3094,22 @@
 
 The optional $disabled argument, if true, adds the disabled attribute to the select tag.
 
+The option $id argument is the value (if any) to set as the (unique) id attribute for the select tag.
+
 =cut
 
 #-------------------------------------------
 sub select_dom_form {
-    my ($defdom,$name,$includeempty,$showdomdesc,$onchange,$incdoms,$excdoms,$disabled) = @_;
+    my ($defdom,$name,$includeempty,$showdomdesc,$onchange,$incdoms,$excdoms,$disabled,$id) = @_;
     if ($onchange) {
         $onchange = ' onchange="'.$onchange.'"';
     }
     if ($disabled) {
         $disabled = ' disabled="disabled"';
     }
+    if ($id ne '') {
+        $id = ' id="'.$id.'"';
+    }
     my (@domains,%exclude);
     if (ref($incdoms) eq 'ARRAY') {
         @domains = sort {lc($a) cmp lc($b)} (@{$incdoms});
@@ -3115,7 +3120,7 @@
     if (ref($excdoms) eq 'ARRAY') {
         map { $exclude{$_} = 1; } @{$excdoms}; 
     }
-    my $selectdomain = "<select name=\"$name\" size=\"1\"$onchange$disabled>\n";
+    my $selectdomain = "<select name=\"$name\" size=\"1\"$onchange$disabled$id>\n";
     foreach my $dom (@domains) {
         next if ($exclude{$dom});
         $selectdomain.="<option value=\"$dom\" ".
@@ -7310,6 +7315,12 @@
   display: inline;
 }
 
+.LC_landmark {
+  margin: 0;
+  padding: 0;
+  border: none;
+}
+
 .LC_visually_hidden:not(:focus):not(:active) {
     clip-path: inset(50%);
     height: 1px;
@@ -7320,6 +7331,12 @@
     display: inline;
 }
 
+.LC_heading_2 {
+  font-size: 1.17em;
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
 .LC_menus_content.shown{
   display: block;
 }
@@ -19064,7 +19081,7 @@
                 }
             }
         }
-        return ($update); 
+        return ($update);
     }
     return ();
 }
@@ -19595,9 +19612,9 @@
         if (-e $Apache::lonnet::perlvar{'lonCaptchaDir'}.'/'.$md5sum.'.png') {
             $output = '<input type="hidden" name="crypt" value="'.$md5sum.'" />'."\n".
                       '<span class="LC_nobreak">'.
-                      &mt('Type in the letters/numbers shown below').' '.
+                      '<label>'.&mt('Type in the letters/numbers shown below').' '.
                       '<input type="text" size="5" name="code" value="" autocomplete="new-password" />'.
-                      '</span><br />'.
+                      '</label></span><br />'.
                       '<img src="'.$captcha_params{'www_output_dir'}.'/'.$md5sum.'.png" alt="captcha" />';
             last;
         }


More information about the LON-CAPA-cvs mailing list