[LON-CAPA-cvs] cvs: loncom /auth lonlogin.pm

raeburn raeburn at source.lon-capa.org
Sun Feb 9 17:42:13 EST 2025


raeburn		Sun Feb  9 22:42:13 2025 EDT

  Modified files:              
    /loncom/auth	lonlogin.pm 
  Log:
  - WCAG 2 compliance.
  
  
Index: loncom/auth/lonlogin.pm
diff -u loncom/auth/lonlogin.pm:1.208 loncom/auth/lonlogin.pm:1.209
--- loncom/auth/lonlogin.pm:1.208	Wed Sep 18 15:11:31 2024
+++ loncom/auth/lonlogin.pm	Sun Feb  9 22:42:12 2025
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Login Screen
 #
-# $Id: lonlogin.pm,v 1.208 2024/09/18 15:11:31 raeburn Exp $
+# $Id: lonlogin.pm,v 1.209 2025/02/09 22:42:12 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -248,6 +248,9 @@
         }
     }
 
+    (undef,undef,undef,my $clientmathml,my $clientunicode,undef,my $clientmobile) =
+        &Apache::loncommon::decode_user_agent($r);
+
 #
 # If browser sent an old cookie for which the session file had been removed
 # check if configuration for user's domain has a portal URL set.  If so
@@ -268,8 +271,12 @@
 # -------------------------------- Prevent users from attempting to login twice
     if ($handle ne '') {
         &Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle);
+        my $args = {};
+        if ($clientunicode && !$clientmathml) {
+            $args->{'browser.unicode'} = 1;
+        }
 	my $start_page = 
-	    &Apache::loncommon::start_page('Already logged in');
+	    &Apache::loncommon::start_page('Already logged in','',$args);
 	my $end_page = 
 	    &Apache::loncommon::end_page();
         my $dest = '/adm/roles';
@@ -380,9 +387,11 @@
         }
 	$r->print(
                   $start_page
+                 .'<div role="main">'
                  .'<p class="LC_warning">'.&mt('You are already logged in!').'</p>'
                  .'<p>'.&mt('Please either [_1]continue the current session[_2] or [_3]log out[_4].',
                   '<a href="'.$dest.'">','</a>','<a href="/adm/logout">','</a>').'</p>'
+                 .'</div>' 
                  .$end_page
                  );
         return OK;
@@ -408,9 +417,6 @@
 # ----------------------------------------------------------- Process Interface
     $env{'form.interface'}=~s/\W//g;
 
-    (undef,undef,undef,undef,undef,undef,my $clientmobile) =
-        &Apache::loncommon::decode_user_agent($r);
-
     my $iconpath= 
 	&Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL'));
 
@@ -618,17 +624,34 @@
   .'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">'
   .'<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>'
   .&mt('The LearningOnline Network with CAPA')
-  .'</title></head>'
+  .'</title>'
+  .'<style type="text/css">
+body {
+  background-color:"#FFFFFF";
+}
+h2 {
+  display: block;
+  font-size: 1.17em;
+  margin-top: 1em;
+  margin-bottom: 1em;
+  margin-left: 0;
+  margin-right: 0;
+  font-weight: bold;
+}
+</style></head>'
   .'<body bgcolor="#FFFFFF">'
+  .'<div role="banner">'
   .'<h1>'.&mt('The LearningOnline Network with CAPA').'</h1>'
   .'<img src="/adm/lonKaputt/lonlogo_broken.gif" alt="broken icon" align="right" />'
-  .'<h3>'.&mt('This LON-CAPA server is temporarily not available for login.').'</h3>');
+  .'</div>'
+  .'<div role="main">'
+  .'<h2>'.&mt('This LON-CAPA server is temporarily not available for login.').'</h2>');
         if ($spares) {
             $r->print('<p>'.&mt('Please attempt to login to one of the following servers:')
                      .'</p>'
                      .$spares);
         }
-        $r->print('</body>'
+        $r->print('</div></body>'
                  .'</html>'
         );
         return OK;
@@ -812,10 +835,16 @@
         }
     }
 
-    $r->print(&Apache::loncommon::start_page('The LearningOnline Network with CAPA Login',$js,
-			       { 'redirect'       => [$expire,'/adm/roles'], 
-				 'add_entries' => \%add_entries,
-				 'only_body'   => 1,}));
+    my $args = {
+                 'redirect'    => [$expire,'/adm/roles'],
+                 'add_entries' => \%add_entries,
+                 'only_body'   => 1,
+               };
+    if ($clientunicode && !$clientmathml) {
+        $args->{'browser.unicode'} = 1;
+    }
+    $r->print(&Apache::loncommon::start_page('The LearningOnline Network with CAPA Login',
+                                             $js,$args));
 
 # ----------------------------------------------------------------------- Texts
 
@@ -925,17 +954,22 @@
         }
         $r->print(<<HEADER);
 <!-- The LON-CAPA Header -->
-<div style="background:$pgbg;margin:0;width:100%;">
+<div style="background:$pgbg;margin:0;width:100%;" role="banner">
+  <h1 style="padding:0;margin:0">
   <img src="$img" border="0" alt="$alttext" class="LC_maxwidth" id="lcloginbanner" />
+  </h1>
 </div>
 HEADER
+    } else {
+        $r->print('<div role="banner" class="LC_visually_hidden" tabindex="-1">'.
+                  '<h1>'.&mt('LON-CAPA Login Page').'</h1></div>');
     }
 
     my $stdauthformstyle = 'inline-block';
     my $ssoauthstyle = 'none';
     my $sso_onclick;
     my $logintype;
-    $r->print('<div style="float:left;margin-top:0;">');
+    $r->print('<div style="float:left;margin-top:0;" role="main">');
     if ($saml_landing) {
         $ssoauthstyle = 'inline-block';
         $stdauthformstyle = 'none';
@@ -1104,22 +1138,22 @@
 </div>
 <hr style="clear:both;" />
 ENDTOP
-    my ($domainrow,$serverrow,$loadrow,$userloadrow,$versionrow);
+    my ($domainrow,$serverrow,$loadrow,$userloadrow,$versioninfo);
     $domainrow = <<"END";
       <tr>
-       <td  align="left" valign="top">
+       <th align="left" valign="top">
         <small><b>$lt{'dom'}: </b></small>
-       </td>
-       <td  align="left" valign="top">
+       </th>
+       <th align="left" valign="top">
         <small><tt> $domain</tt></small>
        </td>
       </tr>
 END
     $serverrow = <<"END";
       <tr>
-       <td  align="left" valign="top">
+       <th align="left" valign="top">
         <small><b>$lt{'serv'}: </b></small>
-       </td>
+       </th>
        <td align="left" valign="top">
         <small><tt> $lonhost ($role)</tt></small>
        </td>
@@ -1128,9 +1162,9 @@
     if ($loadlim) {
         $loadrow = <<"END";
       <tr>
-       <td align="left" valign="top">
+       <th align="left" valign="top">
         <small><b>$lt{'load'}: </b></small>
-       </td>
+       </th>
        <td align="left" valign="top">
         <small><tt> $loadpercent $lt{'perc'}</tt></small>
        </td>
@@ -1140,9 +1174,9 @@
     if ($uloadlim) {
         $userloadrow = <<"END";
       <tr>
-       <td align="left" valign="top">
+       <th align="left" valign="top">
         <small><b>$lt{'userload'}: </b></small>
-       </td>
+       </th>
        <td align="left" valign="top">
         <small><tt> $userloadpercent $lt{'perc'}</tt></small>
        </td>
@@ -1150,28 +1184,24 @@
 END
     }
     if (($version ne '') && ($version ne '<!-- VERSION -->')) {
-        $versionrow = <<"END";
-      <tr>
-       <td colspan="2" align="left">
-        <small>$version</small>
-       </td>
-      </tr>
-END
+        $versioninfo = "<small>$version</small>";
     }
 
     $r->print(<<ENDDOCUMENT);
+    <div role="contentinfo" style="padding:0;clear:both;margin:0;border:0">
     <div style="float: left;">
      <table border="0" cellspacing="0" cellpadding="0">
 $domainrow
 $serverrow
 $loadrow    
 $userloadrow
-$versionrow
      </table>
+    $versioninfo
     </div>
     <div style="float: right;">
     $domainlogo
     </div>
+    </div>
     <br style="clear:both;" />
  </div>
 




More information about the LON-CAPA-cvs mailing list