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

raeburn raeburn at source.lon-capa.org
Thu Mar 6 21:13:40 EST 2025


raeburn		Fri Mar  7 02:13:40 2025 EDT

  Modified files:              
    /loncom/interface	loncommon.pm lonpreferences.pm 
  Log:
  - WCAG 2 compliance.
  
  
-------------- next part --------------
Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.1468 loncom/interface/loncommon.pm:1.1469
--- loncom/interface/loncommon.pm:1.1468	Sun Mar  2 05:22:45 2025
+++ loncom/interface/loncommon.pm	Fri Mar  7 02:13:40 2025
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.1468 2025/03/02 05:22:45 raeburn Exp $
+# $Id: loncommon.pm,v 1.1469 2025/03/07 02:13:40 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -966,7 +966,9 @@
 
 sub select_timezone {
    my ($name,$selected,$onchange,$includeempty,$id,$disabled)=@_;
-   my $output='<select name="'.$name.'" '.$id.$onchange.$disabled.'>'."\n";
+   my $labeltext = &HTML::Entities::encode(&mt('Select Time Zone'));
+   my $output='<select name="'.$name.'" '.$id.$onchange.$disabled.
+              ' aria-label="'.$labeltext.'">'."\n";
    if ($includeempty) {
        $output .= '<option value=""';
        if (($selected eq '') || ($selected eq 'local')) {
@@ -1351,7 +1353,7 @@
     }
     $template.=' <a'.$target.' href="'.$link.'" title="'.$title.'">'
               .'<img src="'.$helpicon.'" border="0"'
-              .' alt="'.&mt('Help: [_1]',$topic).'"'
+              .' alt="'.&mt('Help icon').'"'
               .' title="'.$title.'" style="vertical-align:middle;"'.$imgid 
               .' /></a>';
     if ($text ne "") {	
@@ -7763,6 +7765,12 @@
 table.LC_caption {
 }
 
+caption.LC_caption_prefs {
+  font-weight: normal;
+  text-align: left;
+  padding-bottom: 0.8em;
+}
+
 table.LC_nested tr.LC_empty_row td {
   padding: 4ex
 }
@@ -7933,6 +7941,10 @@
   border-right: 8px solid #11CC55;
 }
 
+table.LC_data_table tr.LC_prefs_row {
+   line-height: 250%;
+}
+
 span.LC_current_location {
   font-size:larger;
   background: $pgbg;
Index: loncom/interface/lonpreferences.pm
diff -u loncom/interface/lonpreferences.pm:1.247 loncom/interface/lonpreferences.pm:1.248
--- loncom/interface/lonpreferences.pm:1.247	Wed Mar  5 05:24:42 2025
+++ loncom/interface/lonpreferences.pm	Fri Mar  7 02:13:40 2025
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Preferences
 #
-# $Id: lonpreferences.pm,v 1.247 2025/03/05 05:24:42 raeburn Exp $
+# $Id: lonpreferences.pm,v 1.248 2025/03/07 02:13:40 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -103,16 +103,17 @@
 	    {	href => '/adm/preferences?action=changelanguages',
                 text => 'Change Language'});
     $r->print(Apache::loncommon::start_page('Content Display Settings'));
-    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Language')); 
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Language').
+              '<div class="LC_landmark" role="main">'); 
     my %userenv = &Apache::lonnet::get('environment',['languages']);
     my $language=$userenv{'languages'};
 
     $r->print(
         '<form name="prefs" action="/adm/preferences" method="post">'."\n".
         '<input type="hidden" name="action" value="verify_and_change_languages" />'.
-        '<br /><span class="LC_nobreak">'.&mt('Preferred language').': '.
-        &Apache::loncommon::select_language('language',$language,1).'</span>'."\n".
-        '<br /><input type="submit" value="'.&mt('Save').'" /></form>'
+        '<br /><span class="LC_nobreak"><label>'.&mt('Preferred language').': '.
+        &Apache::loncommon::select_language('language',$language,1).'</label></span>'."\n".
+        '<br /><input type="submit" value="'.&mt('Save').'" /></form></div>'
     );
 }
 
@@ -192,8 +193,8 @@
 <form name="prefs" action="/adm/preferences" method="post">
 <input type="hidden" name="action" value="verify_and_change_texengine" />
 <p>
-$lt{'preftxt'}: $selectionbox 
-<br />
+<label>$lt{'preftxt'}: $selectionbox 
+</label><br />
 <input type="submit" value="$lt{'change'}" />
 </p>
 </form>
@@ -275,7 +276,8 @@
 	    {	href => '/adm/preferences?action=changerolespref',
                 text => $brtext});
     $r->print(Apache::loncommon::start_page('Content Display Settings'));
-    $r->print(Apache::lonhtmlcommon::breadcrumbs($brtitle));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs($brtitle).
+              '<div class="LC_landmark" role="main">');
     my $hotlist_flag=$userenv{'recentroles'};
     my $hotlist_n=$userenv{'recentrolesn'};
     my ($checkedon,$checkedoff);
@@ -294,49 +296,49 @@
     }
 
 # Get list of recent roles and display with checkbox in front
-    my $roles_check_list = '';
-    my $role_key='';
+    my $roles_check_list;
     if ($env{'environment.recentroles'}) {
         my %recent_roles =
                &Apache::lonhtmlcommon::get_recent('roles',$env{'environment.recentrolesn'});
         my %frozen_roles =
                &Apache::lonhtmlcommon::get_recent_frozen('roles',$env{'environment.recentrolesn'});
-        
+
         my %role_text = &rolespref_get_role_text([keys(%recent_roles)]);
         my @sorted_roles = sort {$role_text{$a} cmp $role_text{$b}} keys(%role_text);
 
-        $roles_check_list .=
-	    &Apache::loncommon::start_data_table().
-	    &Apache::loncommon::start_data_table_header_row().
-	    "<th>".&mt('Freeze '.$role)."</th>".
-	    "<th>".&mt($role)."</th>".
-	    &Apache::loncommon::end_data_table_header_row().
-	    "\n";
-	my $count;
-        foreach $role_key (@sorted_roles) {
-            my $checked = "";
-            my $value = $recent_roles{$role_key};
-            if ($frozen_roles{$role_key}) {
-                $checked = ' checked="checked"';
-            }
-	    $count++;
-            $roles_check_list .=
-		&Apache::loncommon::start_data_table_row().
-		'<td class="LC_table_cell_checkbox">'.
-		"<input type=\"checkbox\"$checked name=\"freezeroles\"".
-		" id=\"freezeroles$count\" value=\"$role_key\" /></td>".
-		"<td><label for=\"freezeroles$count\">".
-		"$role_text{$role_key}</label></td>".
-		&Apache::loncommon::end_data_table_row(). "\n";
+        if (@sorted_roles) {
+            $roles_check_list =
+	        &Apache::loncommon::start_data_table().
+	        &Apache::loncommon::start_data_table_header_row().
+	        "<th>".&mt('Freeze '.$role)."</th>".
+	        "<th>".&mt($role)."</th>".
+	        &Apache::loncommon::end_data_table_header_row()."\n";
+	    my $count = 0;
+            foreach my $role_key (@sorted_roles) {
+                my $checked = "";
+                my $value = $recent_roles{$role_key};
+                if ($frozen_roles{$role_key}) {
+                    $checked = ' checked="checked"';
+                }
+	        $count++;
+                $roles_check_list .=
+		    &Apache::loncommon::start_data_table_row().
+		    '<td class="LC_table_cell_checkbox">'.
+		    "<input type=\"checkbox\"$checked name=\"freezeroles\"".
+		    " id=\"freezeroles$count\" value=\"$role_key\" /></td>".
+		    "<td><label for=\"freezeroles$count\">".
+		    "$role_text{$role_key}</label></td>".
+		    &Apache::loncommon::end_data_table_row(). "\n";
+            }
+            $roles_check_list .= &Apache::loncommon::end_data_table."\n";
         }
-        $roles_check_list .= "</table>\n";
     }
 
     my $actionurl = '/adm/preferences';
     if ($env{'form.returnurl'} eq '/adm/roles') {
         $actionurl = '/adm/roles';
     }
-    $r->print('<h3>'.&mt('Recent Roles Hotlist').'</h3>');
+    $r->print('<h2 class="LC_heading_2">'.&mt('Recent Roles Hotlist').'</h2>');
     unless ($checkedon) {
         $r->print(&mt('LON-CAPA users with several '.$lc_role.'s may wish to enable the Hotlist.').'<br />');
     }
@@ -344,7 +346,7 @@
 <form name="prefs" action="'.$actionurl.'" method="post">
 <input type="hidden" name="action" value="verify_and_change_rolespref" />
 <input type="hidden" name="returnurl" value="'.$env{'form.returnurl'}.'" />
-<div class="LC_left_float"><h4>'.&mt('Hotlist options').'</h4>
+<div class="LC_left_float"><h3 class="LC_heading_3">'.&mt('Hotlist options').'</h3>
 <p>'.
 &mt('When enabled, the Hotlist keeps track of the last N '.$lc_role.'s visited.').'<br />'.
 &mt('Those N '.$lc_role.'s are then shown in a table at the top of the '.$lc_role.'s page.').'</p>'.
@@ -365,7 +367,7 @@
 </div>');
     if ($roles_check_list) {
         $r->print('<div class="LC_left_float">
-<h4>'.&mt('Freeze Roles').'</h4>
+<h3 class="LC_heading_3">'.&mt('Freeze Roles').'</h3>
 <p>'.&mt('The table below can be used to [_1]freeze[_2] '.$lc_role.'s in the Hotlist.','<q>','</q>').'<br />'.
 &mt('Those '.$lc_role.'s marked frozen will not be removed from the list, even if not recently used.').'
 </p>
@@ -378,7 +380,7 @@
      $r->print('
 <br clear="all" />
 <input type="submit" value="'.&mt('Save').'" />
-</form>');
+</form></div>');
 }
 
 sub rolespref_get_role_text {
@@ -491,13 +493,11 @@
                   text => 'Change Screen Name'});
     $r->print(Apache::loncommon::start_page('Personal Data'));
     $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Screen Name'));
-    $r->print('<div class="LC_landmark" role="main"><p>'
-             .&mt('Change the name that is displayed in your posts.')
-             .'</p>'
-    );
+    $r->print('<div class="LC_landmark" role="main">');
+    my $caption = &mt('Name displayed in posts you make').':';            
     $r->print('<form name="prefs" action="/adm/preferences" method="post">'
-             .'<input type="hidden" name="action" value="verify_and_change_screenname" />'
-             .&Apache::lonhtmlcommon::start_pick_box()
+             .'<p><input type="hidden" name="action" value="verify_and_change_screenname" />'
+             .&Apache::lonhtmlcommon::start_pick_box(undef,undef,$caption,'LC_caption_prefs')
              .&Apache::lonhtmlcommon::row_title('<label for="screenname">'.&mt('Screenname').'</label> '.&mt('(shown if you post anonymously)'))
              .'<input type="text" size="20" value="'.$screenname.'" name="screenname" id="screenname" />'
              .&Apache::lonhtmlcommon::row_closure()
@@ -508,7 +508,7 @@
              .'<input type="submit" value="'.&mt('Save').'" />'
              .&Apache::lonhtmlcommon::row_closure(1)
              .&Apache::lonhtmlcommon::end_pick_box()
-             .'</form></div>'
+             .'</p></form></div>'
     );
 }
 
@@ -556,7 +556,8 @@
             {   href => '/adm/preferences?action=changeicons',
                 text => 'Change Menu Display'});
     $r->print(Apache::loncommon::start_page('Page Display Settings'));
-    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Menu Display'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Menu Display').
+              '<div class="LC_landmark" role="main">');
 
     my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};
@@ -591,14 +592,19 @@
                       '<ul>'.
                       $iconic_preview.
                       '</ul></li></ul>'; 
+    my $title = &mt('Use of icons and text');
     $r->print(<<ENDSCREEN);
 $classic
 <form name="prefs" action="/adm/preferences" method="post">
 <input type="hidden" name="action" value="verify_and_change_icons" />
+<fieldset style="display:inline;"><legend>$title</legend>
 <label><input type="radio" name="menumode" value="iconic" $iconic /> $lt{'iconic'}</label>$iconic_preview<br />
 <label><input type="radio" name="menumode" value="iconsonly" $onlyicon /> $lt{'iconsonly'}</label>$iconsonly_preview<br />
+</fieldset>
+<p>
 <input type="submit" value="$change" />
-</form>
+</p>
+</form></div>
 ENDSCREEN
 }
 
@@ -657,7 +663,8 @@
 	    {	href => '/adm/preferences?action=changeclicker',
                 text => 'Register Clicker'});
     $r->print(Apache::loncommon::start_page('Other'));
-    $r->print(Apache::lonhtmlcommon::breadcrumbs('Register Clicker'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Register Clicker').
+              '<div class="LC_landmark" role="main">');
     my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get
@@ -668,14 +675,17 @@
     my $change=&mt('Save');
     my $helplink=&Apache::loncommon::help_open_topic('Clicker_Registration',&mt('Locating your clicker ID'));
     $r->print(<<ENDSCREEN);
+<br />
 <form name="prefs" action="/adm/preferences" method="post">
 <input type="hidden" name="action" value="verify_and_change_clicker" />
 <label>$helplink<br /><br />$text<br />
 <textarea name="clickers" rows="5" cols="20">$clickers</textarea>
 </label>
-<br />
+<p>
 <input type="submit" value="$change" />
+</p>
 </form>
+</div>
 ENDSCREEN
 }
 
@@ -848,14 +858,24 @@
                                           notv => 'is not a valid e-mail address',
                                           toen => "To enter multiple addresses, enter one address at a time, click 'Change' and then add the next one", 
                                           prme => 'Back',
+                                          acti => 'Action',
+                                          type => 'Types of message for which notification is sent',
+                                          nota => 'Notification address',
+                                          exce => 'Excerpt retains HTML tags in message',
+                                          modi => 'Modify',
+                                          dele => 'Delete',
+                                          addn => 'Add new address',
+                                          yes  => 'Yes',
+                                          no   => 'No',
                                         );
     $lt{'foad_exmpl'} = &mt('e.g. [_1]userA:domain1,userB:domain2,...[_2]','<tt>','</tt>');
     $lt{'mnot_exmpl'} = &mt('e.g. [_1]joe at doe.com[_2]','<tt>','</tt>');
     Apache::lonhtmlcommon::add_breadcrumb(
 	    {	href => '/adm/preferences?action=changemsgforward',
-		text => 'Messages & Notifications'});
+		text => 'Messages & Notifications'});
     $r->print(Apache::loncommon::start_page('Messages & Notifications'));
-    $r->print(Apache::lonhtmlcommon::breadcrumbs('Messages & Notifications'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Messages & Notifications').
+              '<div class="LC_landmark" role="main">');
     my $forwardingHelp = &Apache::loncommon::help_open_topic("Prefs_Forwarding");
     my $notificationHelp = &Apache::loncommon::help_open_topic("Prefs_Notification");
     my $criticalMessageHelp = &Apache::loncommon::help_open_topic("Course_Critical_Message");
@@ -924,41 +944,41 @@
     $r->print(<<ENDMSG);
 $jscript
 $message
-<h3>$lt{'fwdm'} $forwardingHelp</h3>
+<h2 class="LC_heading_2">$lt{'fwdm'} $forwardingHelp</h2>
 <form name="prefs" action="/adm/preferences" method="post">
 <input type="hidden" name="action" value="verify_and_change_msgforward" />
-$lt{'foad'} ($lt{'foad_exmpl'}):
-<input type="text" size="40" value="$msgforward" name="msgforward" />
-<br /><br />
-<h3>$lt{'noti'} $notificationHelp</h3>
-$lt{'mnot'} ($lt{'mnot_exmpl'}):<br />
+<label for="msgforward">$lt{'foad'}</label> ($lt{'foad_exmpl'}):
+<input type="text" size="40" value="$msgforward" name="msgforward" id="msgforward" />
+<p />
+<h2 class="LC_heading_2">$lt{'noti'} $notificationHelp</h2>
+<span id="LC_email_notify">$lt{'mnot'}</span> ($lt{'mnot_exmpl'}):<br />
 ENDMSG
-    my @sortforwards = sort (keys(%allnot));
+    my @sortnotify = sort (keys(%allnot));
     my $output = &Apache::loncommon::start_data_table().
                  &Apache::loncommon::start_data_table_header_row().
-                 '<th> </th>'.
-                 '<th>'.&mt('Action').'</th>'.
-                 '<th>'.&mt('Notification address').'</th><th>'.
-                 &mt('Types of message for which notification is sent').
+                 '<th>#</th>'.
+                 '<th>'.$lt{'acti'}.'</th>'.
+                 '<th>'.$lt{'nota'}.'</th><th>'.
+                 $lt{'type'}.
                  $criticalMessageHelp.'</th><th>'.
-                 &mt('Excerpt retains HTML tags in message').'</th>'.
+                 $lt{'exce'}.'</th>'.
                  &Apache::loncommon::end_data_table_header_row();
     my $num = 0;
     my $counter = 1;
-    foreach my $item (@sortforwards) {
-        $output .= &Apache::loncommon::start_data_table_row().
+    foreach my $item (@sortnotify) {
+        $output .= &Apache::loncommon::start_data_table_row('LC_prefs_row').
                    '<td><b>'.$counter.'</b></td>'.
                    '<td><span class="LC_nobreak"><label>'.
                    '<input type="checkbox" name="modify_notify_'.
                    $num.'" onclick="javscript:modify_address('."'$num'".')" />'.
-                   &mt('Modify').'</label></span>   '.
+                   $lt{'modi'}.'</label></span> '.(' ' x2).
                    '<span class="LC_nobreak"><label>'.
                    '<input type="checkbox" name="del_notify_'.$num.
                    '" onclick="javscript:delete_address('."'$num'".')" />'.
-                   &mt('Delete').'</label></span></td>'.
-                   '<td><input type="text" value="'.$item.'" name="address_'.
+                   $lt{'dele'}.'</label></span></td>'.
+                   '<td><span style="padding: 10px;"><input type="text" value="'.$item.'" name="address_'.
                    $num.'" onfocus="javascript:address_changes('."'$num'".
-                   ')" /></td><td>';
+                   ')" aria-labelledby="LC_email_notify" /></span></td><td>';
         my %chk;
         if (defined($allnot{$item}{'crit'})) {
             if (defined($allnot{$item}{'reg'})) {
@@ -969,13 +989,15 @@
         } else {
             $chk{'reg'} = 'checked="checked" ';
         }
+        $output .= '<fieldset class="LC_landmark" style="display:inline"><legend class="LC_visually_hidden">'.$lt{'type'}.'</legend>';
         foreach my $type ('all','crit','reg') {
             $output .= '<span class="LC_nobreak"><label>'.
                        '<input type="radio" name="notify_type_'.$num. 
                        '" value="'.$type.'" '.$chk{$type}.
                        ' onchange="javascript:address_changes('."'$num'".')" />'.
-                       $lt{$type}.'</label></span>'.(' ' x4);
+                       $lt{$type}.'</label></span> '.(' ' x2);
         }
+        $output .= '</fieldset>';
         my $htmlon = '';
         my $htmloff = '';
         if (grep/^\Q$item\E/, at allow_html) {
@@ -983,14 +1005,16 @@
         } else {
             $htmloff = 'checked="checked" ';
         }
-        $output .= '</td><td><label><input type="radio" name="html_'.$num.
+        $output .= '</td><td>'.
+                   '<fieldset class="LC_landmark" style="display:inline"><legend class="LC_visually_hidden">'.$lt{'exce'}.'</legend>'.
+                   '<label><input type="radio" name="html_'.$num.
                    '" value="1" '.$htmlon.
                    ' onchange="javascript:address_changes('."'$num'".')" />'.
-                   &mt('Yes').'</label>'.(' ' x3).
+                   $lt{'yes'}.'</label> '.(' ' x2).
                    '<label><input type="radio" name="html_'.$num.'" value="0" '.
                    $htmloff. ' onchange="javascript:address_changes('."'$num'".
 ')" />'.
-                   &mt('No').'</label></td>'.
+                   $lt{'no'}.'</label></fieldset></td>'.
                    &Apache::loncommon::end_data_table_row();
         $num ++;
         $counter ++;
@@ -1000,24 +1024,27 @@
                    crit => '',
                    reg => '',
                  );
-    $output .= &Apache::loncommon::start_data_table_row().
+    $output .= &Apache::loncommon::start_data_table_row('LC_prefs_row').
                '<td><b>'.$counter.'</b></td>'.
                '<td><span class="LC_nobreak"><label>'.
                '<input type="checkbox" name="add_notify_'.$num.
-               '" value="1" />'.&mt('Add new address').'</label></span></td>'.
-               '<td><input type="text" value="" name="address_'.$num.
-               '" onfocus="javascript:new_address('."'$num'".')" /></td><td>';
+               '" value="1" />'.$lt{'addn'}.'</label></span></td>'.
+               '<td><span style="padding: 10px;"><input type="text" value="" name="address_'.$num.
+               '" onfocus="javascript:new_address('."'$num'".')" aria-labelledby="LC_email_notify" /></span></td><td>';
+    $output .= '<fieldset class="LC_landmark" style="display:inline"><legend class="LC_visually_hidden">'.$lt{'type'}.'</legend>';
     foreach my $type ('all','crit','reg') {
         $output .= '<span class="LC_nobreak"><label>'.
                    '<input type="radio" name="notify_type_'.$num.
                    '" value="'.$type.'" '.$defchk{$type}.'/>'.
-                   $lt{$type}.'</label></span>'.(' ' x4);
+                   $lt{$type}.'</label></span> '.(' ' x2);
     }
-    $output .= '</td><td><label><input type="radio" name="html_'.$num.
-               '" value="1" />'.&mt('Yes').'</label>'.(' ' x3).
+    $output .= '</fieldset></td><td>'.
+               '<fieldset class="LC_landmark" style="display:inline"><legend class="LC_visually_hidden">'.$lt{'exce'}.'</legend>'.
+               '<label><input type="radio" name="html_'.$num.
+               '" value="1" />'.$lt{'yes'}.'</label> '.(' ' x2).
                '<label><input type="radio" name="html_'.$num.'" value="0" '.
                ' checked="checked" />'.
-               &mt('No').'</label></td>'.
+               $lt{'no'}.'</label></fieldset></td>'.
                &Apache::loncommon::end_data_table_row().
                &Apache::loncommon::end_data_table();
     $num ++;
@@ -1027,7 +1054,7 @@
 <input type="hidden" name="numnotify" value="$num" />
 <input type="button" value="$lt{'prme'}" onclick="location.href='/adm/preferences'" />
 <input type="button" value="$lt{'chg'}" onclick="javascript:validate()" />
-</form>
+</form></div>
 |);
 
 }
@@ -1161,7 +1188,8 @@
 	    {	href => '/adm/preferences?action=changecolors',
                 text => 'Change Colors'});
     $r->print(Apache::loncommon::start_page('Page Display Settings'));
-    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Colors'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Colors').
+              '<div class="LC_landmark" role="main">');
 # figure out colors
     my $function=&Apache::loncommon::get_users_function();
     my $domain=&Apache::loncommon::determinedomain();
@@ -1175,13 +1203,18 @@
         'vlink'    => 'Visited Link Color',
         'alink'    => 'Active Link Color',
     );
-    my $start_data_table = &Apache::loncommon::start_data_table();
+    my $start_data_table = &Apache::loncommon::start_data_table().
+                           &Apache::loncommon::data_table_caption(&mt('Colors for LON-CAPA pages')).
+                           &Apache::loncommon::start_data_table_header_row().
+                           '<th>'.&mt('Page Element').'</th><th>'.&mt('Color').'</th>'.
+                           &Apache::loncommon::end_data_table_header_row();
     my $chtable='';
     foreach my $item (sort(keys(%colortypes))) {
        my $curcol=&Apache::loncommon::designparm($function.'.'.$item,$domain);
        $chtable.=&Apache::loncommon::start_data_table_row().
-	   '<td>'.$colortypes{$item}.'<td><input name="'.$item.
-        '" class="colorchooser"  size="10" value="'.$curcol.
+	   '<td><label for="'.$item.'">'.$colortypes{$item}.'</label></td>'.
+	   '<td><input name="'.$item.
+        '" class="colorchooser" id="'.$item.'" size="10" value="'.$curcol.
 '" /></td>'.
 	    &Apache::loncommon::end_data_table_row()."\n";
     }
@@ -1203,6 +1236,7 @@
 <input type="hidden" name="pres_type" />
 <input type="hidden" name="pres_value" />
 </form>
+<br />
 <form name="prefs" action="/adm/preferences" method="post">
 <input type="hidden" name="action" value="verify_and_change_colors" />
 $start_data_table
@@ -1213,7 +1247,7 @@
 <input type="submit" value="$savebutton" />
 <input type="submit" name="resetall" value="$resetbutton" title="$resetbuttondesc" />
 </p>
-</form>
+</form></div>
 ENDCOL
 }
 
@@ -1288,7 +1322,7 @@
         my ($blocked,$blocktext) =
             &Apache::loncommon::blocking_status('passwd',$clientip);
         if ($blocked) {
-            $r->print('<p class="LC_warning">'.$blocktext.'</p>');
+            $r->print('<p class="LC_warning">'.$blocktext.'</p></div>');
             return;
         }
     } elsif ($caller eq 'reset_by_email') {
@@ -1338,13 +1372,18 @@
         $r->print(
             '<p class="LC_error">'
            .&mt('Page requested in unexpected context')
-           .'</p>'
+           .'</p></div>'
         );
         return;
     }
     my $currentauth=&Apache::lonnet::queryauthenticate($user,$domain);
     # Check for authentication types that allow changing of the password.
-    return if ($currentauth !~ /^(unix|internal):/);
+    if ($currentauth !~ /^(unix|internal):/) {
+        unless ($caller eq 'reset_by_email') {
+            $r->print('</div>');
+        }
+        return;
+    }
     #
     # Generate keys
     my ($lkey_cpass ,$ukey_cpass ) = &Apache::loncommon::des_keys();
@@ -1383,7 +1422,9 @@
 ENDFORM
     $r->print(&server_form($logtoken,$caller,$mailtoken,$extrafields));
     $r->print(&client_form($caller,\%hexkey,$currentpass,$domain,$extrafields));
-
+    unless ($caller eq 'reset_by_email') {
+        $r->print('</div>');
+    }
     #
     return;
 }
@@ -1853,7 +1894,8 @@
 	    {	href => '/adm/preferences?action=changediscussions',
                 text => 'Change Discussion Preferences'});
     $r->print(Apache::loncommon::start_page('Change Discussion Preferences'));
-    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Discussion Preferences'));
+    $r->print(Apache::lonhtmlcommon::breadcrumbs('Change Discussion Preferences').
+              '<div class="LC_landmark" role="main">');
     my $user       = $env{'user.name'};
     my $domain     = $env{'user.domain'};
     my %userenv = &Apache::lonnet::get
@@ -1921,15 +1963,15 @@
 
     $r->print('<p class="LC_info">'.$lt{'thde'}.'</p>');
 
-    $r->print(&Apache::loncommon::start_data_table());
+    $r->print(&Apache::loncommon::start_data_table().
+              &Apache::loncommon::start_data_table_header_row());
     $r->print(<<"END");
-       <tr>
         <th>$lt{'pref'}</th>
         <th>$lt{'curr'}</th>
         <th>$lt{'actn'}?</th>
-       </tr>
 END
-    $r->print(&Apache::loncommon::start_data_table_row());
+    $r->print(&Apache::loncommon::end_data_table_header_row().
+              &Apache::loncommon::start_data_table_row());
     $r->print(<<"END");
        <td>$lt{'disa'}</td>
        <td>$lt{$discdisp}</td>
@@ -1941,14 +1983,13 @@
        <td>$lt{'npmr'}</td>
        <td>$lt{$discmark}</td>
        <td><label><input type="checkbox" name="discmark" /><input type="hidden" name="newmark" value="$newmark" /> $lt{'chgt'} "$markchange"</label></td>
-      </tr>
 END
     $r->print(&Apache::loncommon::end_data_table_row().
 	      &Apache::loncommon::end_data_table());
 
     $r->print('<br />'
              .'<input type="submit" name="sub" value="'.&mt('Save').'" />'
-             .'</form>'
+             .'</form></div>'
     );
 }
                                                                                                                 
@@ -2180,7 +2221,7 @@
                     $divsty = 'display:inline-block';
                 }
                 $r->print(<<"END");
-<h4><span class="LC_nobreak">$titles{$item}</span></h4>
+<h3 class="LC_heading_3"><span class="LC_nobreak">$titles{$item}</span></h3>
 <p class="LC_nobreak">$lt{'curd'}: <span style="font-style:italic">$domdefdisplay</span></p>
 <p class="LC_nobreak">
 <label><input type="radio" name="$item" value="dom" onclick="toggleOptions(this.form,'$item','user_$item');"$checkeddom />$lt{'used'}</label>   
@@ -2521,10 +2562,12 @@
                 {   href => '/adm/preferences?action=',
                     text => 'Set Your Time Zone'});
         $r->print(Apache::loncommon::start_page('Set Your Time Zone',$js,$args));
-        $r->print(Apache::lonhtmlcommon::breadcrumbs('Set Your Time Zone'));
+        $r->print(Apache::lonhtmlcommon::breadcrumbs('Set Your Time Zone').
+                  '<div class="LC_landmark" role="main">');
         my %userenv = &Apache::lonnet::get('environment',['timezone']);
         my $timezone = $userenv{'timezone'};
         my %lt = &Apache::lonlocal::texthash(
+                     tztu  => 'Time Zone in use',
                      lctz  => 'Use Time Zone set by LON-CAPA',
                      owntz => 'Use Time Zone set by you',
                      save  => 'Save',
@@ -2542,15 +2585,17 @@
         $r->print(<<"END");
 <form name="prefs" action="/adm/preferences" method="post">
 <input type="hidden" name="action" value="verify_and_change_timezone" />
+<fieldset style="display:inline; padding: 5px;"><legend>$lt{'tztu'}</legend>
 <span class="LC_nobreak">
 <label><input type="radio" name="settimezone" value="0"$checked{'lctz'}$onclick />
-$lt{'lctz'}</label>    
+$lt{'lctz'}</label></span><br />
+<span class="LC_nobreak">
 <label><input type="radio" name="settimezone" value="1"$checked{'owntz'}$onclick />
-$lt{'owntz'}</label><div style="display:$tzsty" id="LC_timezone_selector"> 
+$lt{'owntz'}</label></span><div style="display:$tzsty" id="LC_timezone_selector"> 
 $selector
-</div></span><br /><br />
+</div></fieldset><p>
 <input type="submit" value="$lt{'save'}" />
-</form>
+</p></form></div>
 END
     }
     return;
@@ -2703,7 +2748,7 @@
 		permission => 'F',
 		#help => 'Change_Discussion_Display',
 		icon => 'chat.png',
-                alttext => 'Discussions Icon', 
+                alttext => 'Discussions Icon',
 		linktitle => 'Set display preferences for discussion posts for both discussion boards and individual resources in all your courses.'
 	    },
 		]
@@ -2758,7 +2803,7 @@
 	permission => 'F',
 	#help => 'Change_Password',
 	icon => 'emblem-readonly.png',
-        alttext => 'Secure Icon', 
+        alttext => 'Secure Icon',
 	linktitle => 'Change your password.',
 	});
     }
@@ -2797,7 +2842,7 @@
 	permission => 'F',
 	#help => '',
 	icon => 'blog.png',
-        alttext => 'Debugging Icon', 
+        alttext => 'Debugging Icon',
 	linktitle => 'Toggle Debug Messages.',
 	});
     }
@@ -2858,7 +2903,6 @@
         $ended = 1;
     }elsif($env{'form.action'} eq 'changepass'){
         &passwordchanger($r);
-        $r->print('</div>');
     }elsif($env{'form.action'} eq 'verify_and_change_pass'){
         &verify_and_change_password($r,'preferences','','','',\$ended);
     }elsif($env{'form.action'} eq 'changescreenname'){


More information about the LON-CAPA-cvs mailing list