--- loncom/interface/lonhtmlcommon.pm 2024/09/17 13:06:49 1.414 +++ loncom/interface/lonhtmlcommon.pm 2025/02/18 03:42:04 1.418 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common html routines # -# $Id: lonhtmlcommon.pm,v 1.414 2024/09/17 13:06:49 raeburn Exp $ +# $Id: lonhtmlcommon.pm,v 1.418 2025/02/18 03:42:04 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -542,7 +542,14 @@ sub date_setter { my ($formname,$dname,$currentvalue,$special,$includeempty,$state, $no_hh_mm_ss,$defhour,$defmin,$defsec,$nolink,$no_mm_ss,$no_ss) = @_; my $now = time; - + my %labels = &Apache::lonlocal::texthash( + day => 'day', + month => 'month', + year => 'year', + sec => 'seconds', + min => 'minutes', + hour => 'hours', + ); my $tzname; my ($sec,$min,$hour,$mday,$month,$year) = ('', '', undef,''.''.''); #other potentially useful values: wkday,yrday,is_daylight_savings @@ -643,7 +650,7 @@ document.$formname.$dname\_year.value, </script> ENDJS $result .= ' <span class="LC_nobreak">'; - my $monthselector = qq{<select name="$dname\_month" $special $state onchange="javascript:$dname\_checkday()" >}; + my $monthselector = qq{<select name="$dname\_month" $special $state onchange="javascript:$dname\_checkday()" aria-label="$labels{'month'}">}; # Month my @Months = qw/January February March April May June July August September October November December/; @@ -657,11 +664,11 @@ ENDJS } $monthselector.= ' </select>'; # Day - my $dayselector = qq{<input type="text" name="$dname\_day" $state value="$mday" size="3" $special onchange="javascript:$dname\_checkday()" />}; + my $dayselector = qq{<input type="text" name="$dname\_day" $state value="$mday" size="3" $special onchange="javascript:$dname\_checkday()" aria-label="$labels{'day'}" />}; # Year - my $yearselector = qq{<input type="text" name="$dname\_year" $state value="$year" size="5" $special onchange="javascript:$dname\_checkday()" />}; + my $yearselector = qq{<input type="text" name="$dname\_year" $state value="$year" size="5" $special onchange="javascript:$dname\_checkday()" aria-label="$labels{'year'}" />}; # - my $hourselector = qq{<select name="$dname\_hour" $special $state >}; + my $hourselector = qq{<select name="$dname\_hour" $special $state aria-label="$labels{'hour'}">}; if ($includeempty) { $hourselector.=qq{<option value=''></option>}; } @@ -683,8 +690,8 @@ ENDJS $hourselector .= $timest." </option>\n"; } $hourselector .= " </select>\n"; - my $minuteselector = qq{<input type="text" name="$dname\_minute" $special $state value="$min" size="3" />}; - my $secondselector= qq{<input type="text" name="$dname\_second" $special $state value="$sec" size="3" />}; + my $minuteselector = qq{<input type="text" name="$dname\_minute" $special $state value="$min" size="3" aria-label="$labels{'min'}" />}; + my $secondselector= qq{<input type="text" name="$dname\_second" $special $state value="$sec" size="3" aria-label="$labels{'sec'}" />}; my $cal_link; unless (($nolink) || ($state eq 'disabled')) { $cal_link = qq{<a href="javascript:$dname\_opencalendar()">}; @@ -1861,7 +1868,7 @@ document.addEventListener("DOMContentLoa { regex = new RegExp ("\\p{Dash}", "gu"); } - catch (e) { regex = new RegExp ("[\\u058A\\u05BE\\u1400\\u1806\\u2010-\\u2015\\u2E3A\\u2E3B\\u2E5D\\u301C\\uFE58\\uFE63\\uFF0D]","g"); } + catch (e) { regex = new RegExp ("[\\u058A\\u05BE\\u1400\\u1806\\u2010-\\u2015\\u2212\\u2E3A\\u2E3B\\u2E5D\\u301C\\uFE58\\uFE63\\uFF0D]","g"); } p = p.replace(regex,'-'); putInText(p); }); @@ -2080,7 +2087,7 @@ returns: nothing if ($lasttext ne '') { $links .= &htmltag( 'li', htmltag($CourseBreadcrumbs ? 'b' : 'h1', - $lasttext), {title => $lasttext}); + $lasttext)); } my $icons = ''; @@ -2155,9 +2162,8 @@ returns: nothing # 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 +2496,7 @@ END } 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,$nocolon) = @_; $row_count[0]++; my $css_class = ($row_count[0] % 2)?'LC_odd_row':'LC_even_row'; $css_title_class ||= 'LC_pick_box_title'; @@ -2498,14 +2504,14 @@ sub row_title { $css_value_class ||= 'LC_pick_box_value'; - if ($title ne '') { + if (($title ne '') && (!$nocolon)) { $title .= ':'; } 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;