[LON-CAPA-cvs] cvs: loncom /homework grades.pm /interface loncommon.pm /interface/statistics loncorrectproblemplot.pm lonproblemanalysis.pm lonproblemstatistics.pm lonstathelpers.pm lonstudentsubmissions.pm lonsurveyreports.pm

raeburn raeburn at source.lon-capa.org
Wed Dec 24 09:44:25 EST 2025


raeburn		Wed Dec 24 14:44:25 2025 EDT

  Modified files:              
    /loncom/interface/statistics	loncorrectproblemplot.pm 
                                	lonproblemanalysis.pm 
                                	lonproblemstatistics.pm 
                                	lonstathelpers.pm 
                                	lonstudentsubmissions.pm 
                                	lonsurveyreports.pm 
    /loncom/interface	loncommon.pm 
    /loncom/homework	grades.pm 
  Log:
  - WCAG 2 compliance
    - Headings descend sequentially
    - Include labels for form elements
  
  
-------------- next part --------------
Index: loncom/interface/statistics/loncorrectproblemplot.pm
diff -u loncom/interface/statistics/loncorrectproblemplot.pm:1.28 loncom/interface/statistics/loncorrectproblemplot.pm:1.29
--- loncom/interface/statistics/loncorrectproblemplot.pm:1.28	Mon May  7 10:12:42 2012
+++ loncom/interface/statistics/loncorrectproblemplot.pm	Wed Dec 24 14:44:23 2025
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: loncorrectproblemplot.pm,v 1.28 2012/05/07 10:12:42 goltermann Exp $
+# $Id: loncorrectproblemplot.pm,v 1.29 2025/12/24 14:44:23 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -77,7 +77,7 @@
     my @Students = @Apache::lonstatistics::Students;
     #
     if (@Students < 1) {
-        $r->print('<h2>'.
+        $r->print('<h2 class="LC_heading_2">'.
                   &mt('There are no students in the sections/groups selected').
                   '</h2>');
     }
@@ -299,31 +299,31 @@
     ##
     ## Environment variable initialization
     my $Str;
-    $Str .= '<p>';
+    $Str .= '<div>';
     #
     $Str .= &Apache::loncommon::start_data_table();
     $Str .= &Apache::loncommon::start_data_table_header_row();
-    $Str .= '<th>'.&mt('Sections').'</th>';
-    $Str .= '<th>'.&mt('Groups').'</th>';
-    $Str .= '<th>'.&mt('Access Status').'</th>';
-    $Str .= '<th>'.&mt('Sequences and Folders').'</th>';
+    $Str .= '<th><label for="Section">'.&mt('Sections').'</label></th>';
+    $Str .= '<th><label for="Group">'.&mt('Groups').'</label></th>';
+    $Str .= '<th><label for="Status">'.&mt('Access Status').'</label></th>';
+    $Str .= '<th><label for="Maps">'.&mt('Sequences and Folders').'</label></th>';
     $Str .= '<th>'.&mt('Time Period').'</th>';
     $Str .= &Apache::loncommon::end_data_table_header_row();
     #
     $Str .= &Apache::loncommon::start_data_table_row();
     $Str .= '<td align="center" valign="top">'."\n";
-    $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5);
+    $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5,'Section');
     $Str .= '</td>';
     #
     $Str .= '<td align="center" valign="top">'."\n";
-    $Str .= &Apache::lonstatistics::GroupSelect('Group','multiple',5);
+    $Str .= &Apache::lonstatistics::GroupSelect('Group','multiple',5,'Group');
     $Str .= '</td>';
     $Str .= '<td align="center" valign="top">';
-    $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5);
+    $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5,'','','Status');
     $Str .= '</td>'."\n";
     #
     $Str .= '<td align="center" valign="top">'."\n";
-    $Str .= &Apache::lonstatistics::map_select('Maps','multiple,all',5);
+    $Str .= &Apache::lonstatistics::map_select('Maps','multiple,all',5,'Maps');
     $Str .= '</td>';
     #
     $Str .= '<td align="center" valign="top">'."\n";
@@ -332,6 +332,7 @@
     #
     $Str .= &Apache::loncommon::end_data_table_row();
     $Str .= &Apache::loncommon::end_data_table();
+    $Str .= '</div>';
     ##
     return $Str;
 }
Index: loncom/interface/statistics/lonproblemanalysis.pm
diff -u loncom/interface/statistics/lonproblemanalysis.pm:1.148 loncom/interface/statistics/lonproblemanalysis.pm:1.149
--- loncom/interface/statistics/lonproblemanalysis.pm:1.148	Wed Dec 24 05:55:08 2025
+++ loncom/interface/statistics/lonproblemanalysis.pm	Wed Dec 24 14:44:23 2025
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: lonproblemanalysis.pm,v 1.148 2025/12/24 05:55:08 raeburn Exp $
+# $Id: lonproblemanalysis.pm,v 1.149 2025/12/24 14:44:23 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -132,8 +132,8 @@
             $r->print('resource is undefined');
         } else {
             my $resource = $current_problem->{'resource'};
-            $r->print('<h1>'.$resource->compTitle.'</h1>');
-            $r->print('<h3>'.$resource->src.'</h3>');
+            $r->print('<h1 class="LC_heading_1">'.$resource->compTitle.'</h1>');
+            $r->print('<h2 class="LC_heading_2">'.$resource->src.'</h2>');
             $r->print('<p>'.&Apache::lonstatistics::section_and_enrollment_description().'</p>');
             if ($env{'form.show_prob'} eq 'true') {
                 $r->print('<hr />'
@@ -175,7 +175,7 @@
             &mt('Analyze Problem').'" />';
         $r->print($submit_button);
         $r->print(' 'x5);
-        $r->print('<h3>'.&mt('Please select a problem to analyze').'</h3>');
+        $r->print('<h2 class="LC_heading_2">'.&mt('Please select a problem to analyze').'</h2>');
         $r->print(&Apache::lonstathelpers::problem_selector($problem_types,
                                                             $submit_button));
     }
@@ -1922,27 +1922,27 @@
     ##
     ## Build the menu
     my $Str = '';
-    $Str .= '<p>';
+    $Str .= '<div>';
     $Str .= &Apache::loncommon::start_data_table();
     $Str .= &Apache::loncommon::start_data_table_header_row();
-    $Str .= '<th>'.&mt('Sections').'</th>';
-    $Str .= '<th>'.&mt('Groups').'</th>';
-    $Str .= '<th>'.&mt('Access Status').'</th>';
+    $Str .= '<th><label for="Section">'.&mt('Sections').'</label></th>';
+    $Str .= '<th><label for="Group">'.&mt('Groups').'</label></th>';
+    $Str .= '<th><label for="Status">'.&mt('Access Status').'</label></th>';
     $Str .= '<th>'.&mt('Options').'</th>';
     $Str .= &Apache::loncommon::end_data_table_header_row();
     ##
     ## 
     $Str .= &Apache::loncommon::start_data_table_row();
     $Str .= '<td align="center">'."\n";
-    $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5);
+    $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5,'Section');
     $Str .= '</td>';
     #
     $Str .= '<td align="center">'."\n";
-    $Str .= &Apache::lonstatistics::GroupSelect('Group','multiple',5);
+    $Str .= &Apache::lonstatistics::GroupSelect('Group','multiple',5,'Group');
     $Str .= '</td>';
     #
     $Str .= '<td align="center">';
-    $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5);
+    $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5,'','','Status');
     $Str .= '</td>';
     #
     ##
@@ -1997,7 +1997,7 @@
     ##
     $Str .= &Apache::loncommon::end_data_table_row();
     $Str .= &Apache::loncommon::end_data_table();
-    $Str .= '</p>';
+    $Str .= '</div>';
     return $Str;
 }
 
Index: loncom/interface/statistics/lonproblemstatistics.pm
diff -u loncom/interface/statistics/lonproblemstatistics.pm:1.128 loncom/interface/statistics/lonproblemstatistics.pm:1.129
--- loncom/interface/statistics/lonproblemstatistics.pm:1.128	Wed Mar  7 12:24:27 2018
+++ loncom/interface/statistics/lonproblemstatistics.pm	Wed Dec 24 14:44:23 2025
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: lonproblemstatistics.pm,v 1.128 2018/03/07 12:24:27 raeburn Exp $
+# $Id: lonproblemstatistics.pm,v 1.129 2025/12/24 14:44:23 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -586,7 +586,7 @@
 }
 
 sub field_selection_input {
-    my $Str = '<select name="fieldselections" multiple="multiple" size="5">'."\n";
+    my $Str = '<select name="fieldselections" multiple="multiple" size="5" id="fieldselections">'."\n";
     $Str .= '<option value="all">'.&mt('all').'</option>'."\n";
     foreach my $field (@Fields) {
         next if ($field->{'selectable'} ne 'yes');
@@ -621,25 +621,25 @@
     my $Str = '';
     $Str .= &Apache::loncommon::start_data_table();
     $Str .= &Apache::loncommon::start_data_table_header_row();
-    $Str .= '<th>'.&mt('Sections').'</th>';
-    $Str .= '<th>'.&mt('Groups').'</th>';
-    $Str .= '<th>'.&mt('Access Status').'</th>';
-    $Str .= '<th>'.&mt('Sequences and Folders').'</th>';
-    $Str .= '<th>'.&mt('Statistics').'</th>';
+    $Str .= '<th><label for="Section">'.&mt('Sections').'</label></th>';
+    $Str .= '<th><label for="Group">'.&mt('Groups').'</label></th>';
+    $Str .= '<th><label for="Status">'.&mt('Access Status').'</label></th>';
+    $Str .= '<th><label for="Maps">'.&mt('Sequences and Folders').'</label></th>';
+    $Str .= '<th><label for="fieldselections">'.&mt('Statistics').'</label></th>';
     $Str .= '<th>'.&mt('Plot Graph').'</th>';
     $Str .= '<th>'.&mt('Time Period').'</th>';
     $Str .= &Apache::loncommon::end_data_table_header_row();
     #
     $Str .= &Apache::loncommon::start_data_table_row();
     $Str .= '<td align="center" valign="top">'."\n";
-    $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5);
+    $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5,'Section');
     $Str .= '</td><td align="center" valign="top">';
-    $Str .= &Apache::lonstatistics::GroupSelect('Group','multiple',5);
+    $Str .= &Apache::lonstatistics::GroupSelect('Group','multiple',5,'Group');
     $Str .= '</td><td align="center" valign="top">';
-    $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5);
+    $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5,'','','Status');
     $Str .= '</td><td align="center" valign="top">';
     #
-    $Str .= &Apache::lonstatistics::map_select('Maps','multiple,all',5);
+    $Str .= &Apache::lonstatistics::map_select('Maps','multiple,all',5,'Maps');
     $Str .= '</td><td align="center" valign="top">';
     $Str .= &field_selection_input();
     $Str .= '</td><td align="center" valign="top">';
@@ -742,7 +742,7 @@
         &Apache::lonstatistics::selected_sequences_with_assessments();
     if (! ref($navmap)) {
         $r->print('<div class="LC_error">'.&mt('A course-wide error occurred.').'</div>'.
-                  '<h3>'.$navmap.'</h3>');
+                  '<h3 class="LC_heading_3">'.$navmap.'</h3>');
 	&clean_up();
         return;
     }
@@ -799,7 +799,7 @@
 sub output_sequence_statistics {
     my ($r) = @_;
     my $c=$r->connection();
-    $r->print('<h2>'.&mt('Sequence Statistics').
+    $r->print('<h2 class="LC_heading_2">'.&mt('Sequence Statistics').
 	      &Apache::loncommon::help_open_topic('Statistics_Sequence').
 	      '</h2>');
     $r->print(&Apache::loncommon::start_data_table());
@@ -829,7 +829,7 @@
     #
     foreach my $seq (@sequences) {
         last if ($c->aborted);
-        $r->print("<h3>".$seq->compTitle."</h3>".
+        $r->print("<h3 class=\"LC_heading_3\">".$seq->compTitle."</h3>".
                     &Apache::loncommon::start_data_table().
                     &Apache::loncommon::start_data_table_header_row().
                     &statistics_table_header('no container').
@@ -871,7 +871,7 @@
 
 sub html_preamble {
     my $Str='';
-    $Str .= "<h2>".
+    $Str .= "<h2 class=\"LC_heading_2\">".
         $env{'course.'.$env{'request.course.id'}.'.description'}.
         "</h2>\n";
     my ($starttime,$endtime) = &Apache::lonstathelpers::get_time_limits();
@@ -1274,7 +1274,8 @@
                               name => 'tries statistics',
                               title => 'Tries Statistics' });
     #
-    my $Str= "\n".'<select name="plot" size="1">';
+    my $labeltext = &mt('Data for Y axis in plot');
+    my $Str= "\n".'<select name="plot" size="1" aria-label="'.$labeltext.'">';
     $Str .= '<option name="none"></option>'."\n";
     $Str .= '<option name="none2">'.&mt('none').'</option>'."\n";
     foreach my $field (@Additional_Plots, at Fields) {
@@ -1303,7 +1304,7 @@
 ###############################################
 sub Excel_output {
     my ($r) = @_;
-    $r->print('<h2>'.&mt('Preparing Excel Spreadsheet').'</h2>');
+    $r->print('<h2 class="LC_heading_2">'.&mt('Preparing Excel Spreadsheet').'</h2>');
     ##
     ## Compute the statistics
     &compute_all_statistics($r);
Index: loncom/interface/statistics/lonstathelpers.pm
diff -u loncom/interface/statistics/lonstathelpers.pm:1.81 loncom/interface/statistics/lonstathelpers.pm:1.82
--- loncom/interface/statistics/lonstathelpers.pm:1.81	Wed Jul 12 15:09:41 2023
+++ loncom/interface/statistics/lonstathelpers.pm	Wed Dec 24 14:44:23 2025
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: lonstathelpers.pm,v 1.81 2023/07/12 15:09:41 raeburn Exp $
+# $Id: lonstathelpers.pm,v 1.82 2025/12/24 14:44:23 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -91,7 +91,7 @@
     $rendered_problem =~ s/<\s*form\s*/<nop /g;
     $rendered_problem =~ s|(<\s*/form\s*>)|<\/nop>|g;
     return '<div class="LC_Box">'.
-        '<h4 class="LC_hcell">'.&mt('Problem').'</h4>'.
+        '<h3 class="LC_hcell LC_heading_3">'.&mt('Problem').'</h3>'.
         '<base href="'.$base.'" />'.$rendered_problem.
         '</div>';
 }
@@ -253,7 +253,7 @@
                                  $jsadd.
                                  ' /></td>'
                                  :qq{<td><input type="radio" id="$rb_count" name="problemchoice" value="$value"$checked /></td>}).
-                                '<td><label for="'.$prefix.$rb_count.'">'.$resptype.'</label></td>'.
+                                '<td>'.$resptype.'</td>'.
                                 '<td><label for="'.$prefix.$rb_count.'">'.$title.'</label>';
                             if (scalar(@response_ids) > 1) {
                                 $seq_str .= &mt('response').' '.$respid;
@@ -298,6 +298,9 @@
         } else {
             $Str = '<p class="LC_info">'.&mt('No analyzable problems found').'</p>';
         }
+    } else {
+        $Str = '<fieldset class="LC_borderless"><legend class="LC_visually_hidden">'.
+               &mt('Select a problem to analyze').'</legend>'.$Str.'</fieldset>';
     }
     return $Str;
 }
Index: loncom/interface/statistics/lonstudentsubmissions.pm
diff -u loncom/interface/statistics/lonstudentsubmissions.pm:1.71 loncom/interface/statistics/lonstudentsubmissions.pm:1.72
--- loncom/interface/statistics/lonstudentsubmissions.pm:1.71	Fri Mar 28 15:07:01 2014
+++ loncom/interface/statistics/lonstudentsubmissions.pm	Wed Dec 24 14:44:23 2025
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: lonstudentsubmissions.pm,v 1.71 2014/03/28 15:07:01 bisitz Exp $
+# $Id: lonstudentsubmissions.pm,v 1.72 2025/12/24 14:44:23 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1275,7 +1275,7 @@
 sub CreateInterface {
     ##
     ## Output Selection
-    my $output_selector = $/.'<select name="output">'.$/;
+    my $output_selector = $/.'<select name="output" id="output">'.$/;
     foreach ('HTML','Excel','CSV') {
         $output_selector .= '    <option value="'.lc($_).'"';
         if ($env{'form.output'} eq lc($_)) {
@@ -1290,29 +1290,29 @@
     $Str .= '<br />';
     $Str .= &Apache::loncommon::start_data_table();
     $Str .= &Apache::loncommon::start_data_table_header_row();
-    $Str .= '<th>'.&mt('Sections').'</th>';
-    $Str .= '<th>'.&mt('Groups').'</th>';
-    $Str .= '<th>'.&mt('Student Data').&Apache::loncommon::help_open_topic("Chart_Student_Data").'</th>';
-    $Str .= '<th>'.&mt('Access Status').'</th>';
+    $Str .= '<th><label for="Section">'.&mt('Sections').'</label></th>';
+    $Str .= '<th><label for="Group">'.&mt('Groups').'</label></th>';
+    $Str .= '<th><label for="StudentData">'.&mt('Student Data').&Apache::loncommon::help_open_topic("Chart_Student_Data").'</label></th>';
+    $Str .= '<th><label for="Status">'.&mt('Access Status').'</label></th>';
     $Str .= '<th>'.&mt('Options').'</th>';
-    $Str .= '<th>'.&mt('Output Format').'</th>';
+    $Str .= '<th><label for="output">'.&mt('Output Format').'</label></th>';
     $Str .= &Apache::loncommon::end_data_table_header_row();
     #
     $Str .= &Apache::loncommon::start_data_table_row();
     $Str .= '<td align="center">'."\n";
-    $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5);
+    $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5,'Section');
     $Str .= '</td>';
     #
     $Str .= '<td align="center">'."\n";
-    $Str .= &Apache::lonstatistics::GroupSelect('Group','multiple',5);
+    $Str .= &Apache::lonstatistics::GroupSelect('Group','multiple',5,'Group');
     $Str .= '</td>';
     #
     $Str .= '<td align="center">'."\n";
-    $Str .= &Apache::lonstatistics::StudentDataSelect('StudentData','multiple', 5,undef);
+    $Str .= &Apache::lonstatistics::StudentDataSelect('StudentData','multiple', 5,'StudentData');
     $Str .= '</td>';
     #
     $Str .= '<td align="center">';
-    $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5);
+    $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5,'','','Status');
     $Str .= '</td>';
     #
     # Render problem checkbox
Index: loncom/interface/statistics/lonsurveyreports.pm
diff -u loncom/interface/statistics/lonsurveyreports.pm:1.26 loncom/interface/statistics/lonsurveyreports.pm:1.27
--- loncom/interface/statistics/lonsurveyreports.pm:1.26	Wed Dec 21 21:25:51 2011
+++ loncom/interface/statistics/lonsurveyreports.pm	Wed Dec 24 14:44:23 2025
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: lonsurveyreports.pm,v 1.26 2011/12/21 21:25:51 www Exp $
+# $Id: lonsurveyreports.pm,v 1.27 2025/12/24 14:44:23 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -160,7 +160,7 @@
         $r->print('<input type="submit" name="Generate" value="'.
                   &mt('Generate Survey Report').'" />');
         $r->print(' 'x5);
-        $r->print('<h3>'.&mt('Please select a Survey to analyze').'</h3>');
+        $r->print('<h2 class="LC_heading_2">'.&mt('Please select a Survey to analyze').'</h2>');
         $r->print(&SurveyProblemSelector());
     }
 }
@@ -611,7 +611,7 @@
     ##
     ## Environment variable initialization
     my $Str = '';
-    my $output_selector = '<select name="output" size="5">'.$/;
+    my $output_selector = '<select name="output" size="5" id="output">'.$/;
     if (! exists($env{'form.output'})) {
         $env{'form.output'} = 'HTML';
     }
@@ -626,27 +626,27 @@
         $output_selector.= '>'.$output_format->{'text'}.'</option>'.$/;
     }
     $output_selector .= '</select>'.$/;
-    $Str .= '<p>';
+    $Str .= '<div>';
     $Str .= &Apache::loncommon::start_data_table();
     $Str .= &Apache::loncommon::start_data_table_header_row();
-    $Str .= '<th>'.&mt('Sections').'</th>';
-    $Str .= '<th>'.&mt('Groups').'</th>';
-    $Str .= '<th>'.&mt('Access Status').'</th>';
-    $Str .= '<th>'.&mt('Output Format').'</th>';
+    $Str .= '<th><label for="Section">'.&mt('Sections').'</label></th>';
+    $Str .= '<th><label for="Group">'.&mt('Groups').'</label></th>';
+    $Str .= '<th><label for="Status">'.&mt('Access Status').'</label></th>';
+    $Str .= '<th><label for="output">'.&mt('Output Format').'</label></th>';
     $Str .= '<th>'.&mt('Options').'</th>';
     $Str .= &Apache::loncommon::end_data_table_header_row();
     #
     $Str .= &Apache::loncommon::start_data_table_row();
     $Str .= '<td align="center">'."\n";
-    $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5);
+    $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5,'Section');
     $Str .= '</td>';
     #
     $Str .= '<td align="center">'."\n";
-    $Str .= &Apache::lonstatistics::GroupSelect('Group','multiple',5);
+    $Str .= &Apache::lonstatistics::GroupSelect('Group','multiple',5,'Group');
     $Str .= '</td>';
     #
     $Str .= '<td align="center">';
-    $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5);
+    $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5,'','','Status');
     $Str .= '</td>';
     #
     $Str .= '<td align="center">'.$output_selector.'</td>';
@@ -667,7 +667,7 @@
     $Str .= &Apache::loncommon::end_data_table_row();
     $Str .= &Apache::loncommon::end_data_table();
     #
-    $Str .= '</p>';
+    $Str .= '</div>';
     ##
     return $Str;
 }
Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.1491 loncom/interface/loncommon.pm:1.1492
--- loncom/interface/loncommon.pm:1.1491	Mon Dec 22 20:50:27 2025
+++ loncom/interface/loncommon.pm	Wed Dec 24 14:44:24 2025
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.1491 2025/12/22 20:50:27 raeburn Exp $
+# $Id: loncommon.pm,v 1.1492 2025/12/24 14:44:24 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -7556,6 +7556,10 @@
   opacity: 1;
 }
 
+.LC_heading_1 {
+  font-size: 1.5em;
+}
+
 .LC_heading_2 {
   font-size: 1.17em;
 }
Index: loncom/homework/grades.pm
diff -u loncom/homework/grades.pm:1.829 loncom/homework/grades.pm:1.830
--- loncom/homework/grades.pm:1.829	Sat Dec 13 13:33:33 2025
+++ loncom/homework/grades.pm	Wed Dec 24 14:44:25 2025
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Grading handler
 #
-# $Id: grades.pm,v 1.829 2025/12/13 13:33:33 raeburn Exp $
+# $Id: grades.pm,v 1.830 2025/12/24 14:44:25 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -13349,6 +13349,7 @@
     my ($r)=@_;
     $r->print('<h3>'.&mt('Select the problem or one of the problems you want to grade').'</h3><form action="/adm/grades">');
     $r->print(&Apache::lonstathelpers::problem_selector('.',undef,1,undef,undef,1,1));
+    $r->print('<div style="padding:0;clear:both;margin:0;border:0"></div>');
     $r->print('<input type="hidden" name="command" value="gradingmenu" />');
     $r->print('<input type="submit" value="'.&mt('Next').' →" /></form>');
 }


More information about the LON-CAPA-cvs mailing list