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

raeburn raeburn at source.lon-capa.org
Sat Dec 20 14:59:02 EST 2025


raeburn		Sat Dec 20 19:59:02 2025 EDT

  Modified files:              
    /loncom/interface	lonuserutils.pm 
  Log:
  - WCAG 2 compliance for "Drop Students" screen.
  
  
Index: loncom/interface/lonuserutils.pm
diff -u loncom/interface/lonuserutils.pm:1.226 loncom/interface/lonuserutils.pm:1.227
--- loncom/interface/lonuserutils.pm:1.226	Mon Dec 15 19:17:39 2025
+++ loncom/interface/lonuserutils.pm	Sat Dec 20 19:59:02 2025
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Utility functions for managing LON-CAPA user accounts
 #
-# $Id: lonuserutils.pm,v 1.226 2025/12/15 19:17:39 raeburn Exp $
+# $Id: lonuserutils.pm,v 1.227 2025/12/20 19:59:02 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -4706,7 +4706,8 @@
     }
     my ($classgroups) = &Apache::loncoursedata::get_group_memberships(
                                               $classlist,$keylist,$cdom,$cnum);
-    my %lt=&Apache::lonlocal::texthash('usrn'   => "username",
+    my %lt=&Apache::lonlocal::texthash('sel'    => "select",
+                                       'usrn'   => "username",
                                        'dom'    => "domain",
                                        'id'     => "ID",
                                        'sn'     => "student name",
@@ -4720,11 +4721,17 @@
     if ($crstype eq 'Community') {
         $nametitle = $lt{'mn'};
     }
+    my $legend = &mt('Select students to drop');
+    if ($crstype eq 'Community') {
+        $legend = &mt('Select members to drop');
+    }
+    $r->print('<fieldset class="LC_borderless"><legend class="LC_visually_hidden">'
+             .$legend.'</legend>');
     if ($nosort) {
         $r->print(&Apache::loncommon::start_data_table().
                   &Apache::loncommon::start_data_table_header_row());
         $r->print(<<END);
-    <th> </th>
+    <th>$lt{'sel'}</th>
     <th>$lt{'usrn'}</th>
     <th>$lt{'dom'}</th>
     <th>$lt{'id'}</th>
@@ -4739,7 +4746,7 @@
         $r->print(&Apache::loncommon::start_data_table().
                   &Apache::loncommon::start_data_table_header_row());
         $r->print(<<END);
-    <th> </th>
+    <th>$lt{'sel'}</th>
     <th>
        <a href="/adm/createuser?action=$action&sortby=username">$lt{'usrn'}</a>
     </th><th>
@@ -4799,10 +4806,11 @@
         }
         my $studentkey = $student.':'.$section;
         my $startitem = '<input type="hidden" name="'.$studentkey.'_start" value="'.$sdata->[$indexhash->{'start'}].'" />';
+        my $labeltext = &mt('select [_1] for drop',&HTML::Entities::encode($student,'&<>"'));
         #
         $r->print(&Apache::loncommon::start_data_table_row());
         $r->print(<<"END");
-    <td><input type="checkbox" name="droplist" value="$studentkey" /></td>
+    <td><input type="checkbox" name="droplist" value="$studentkey" aria-label="'.$labeltext.'" /></td>
     <td>$username</td>
     <td>$domain</td>
     <td>$id</td>
@@ -4814,7 +4822,7 @@
 END
         $r->print(&Apache::loncommon::end_data_table_row());
     }
-    $r->print(&Apache::loncommon::end_data_table().'<br />');
+    $r->print(&Apache::loncommon::end_data_table().'</fieldset><br />');
     %lt=&Apache::lonlocal::texthash(
                        'dp'   => "Drop Students",
                        'dm'   => "Drop Members",
@@ -5980,7 +5988,7 @@
     } else {
         $heading = &mt("Drop Students");
     }
-    $r->print('<h3>'.$heading.'</h3>'."\n".
+    $r->print('<h2 class="LC_heading_2">'.$heading.'</h2>'."\n".
               '<form name="studentform" method="post" action="">'."\n");
     my $classlist = &Apache::loncoursedata::get_classlist();
     if (! defined($classlist)) {




More information about the LON-CAPA-cvs mailing list