[LON-CAPA-cvs] cvs: loncom /interface loncommon.pm londocs.pm lonextresedit.pm
raeburn
raeburn at source.lon-capa.org
Mon Feb 3 17:52:36 EST 2025
raeburn Mon Feb 3 22:52:36 2025 EDT
Modified files:
/loncom/interface loncommon.pm londocs.pm lonextresedit.pm
Log:
- WCAG 2 compliance
-------------- next part --------------
Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.1449 loncom/interface/loncommon.pm:1.1450
--- loncom/interface/loncommon.pm:1.1449 Mon Feb 3 19:07:54 2025
+++ loncom/interface/loncommon.pm Mon Feb 3 22:52:36 2025
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.1449 2025/02/03 19:07:54 raeburn Exp $
+# $Id: loncommon.pm,v 1.1450 2025/02/03 22:52:36 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1174,7 +1174,8 @@
$menuorder,
$onchangefirst,
$onchangesecond,
- $suffix
+ $suffix,
+ $haslabel
) = @_;
my $second = "document.$formname.$secondselectname";
my $first = "document.$formname.$firstselectname";
@@ -1240,6 +1241,9 @@
$result.=">".&mt($hashref->{$value}->{'text'})."</option>\n";
}
$result .= "</select>\n";
+ if ($haslabel) {
+ $result .= '</label>';
+ }
my %select2;
if (ref($hashref->{$firstdefault}) eq 'HASH') {
if (ref($hashref->{$firstdefault}->{'select2'}) eq 'HASH') {
@@ -1247,6 +1251,9 @@
}
}
$result .= $middletext;
+ if ($middletext ne '') {
+ $result .= '<label>';
+ }
$result .= "<select size=\"1\" name=\"$secondselectname\"";
if ($onchangesecond) {
$result .= ' onchange="'.$onchangesecond.'"';
@@ -1264,6 +1271,9 @@
$result.=">".&mt($select2{$value})."</option>\n";
}
$result .= "</select>\n";
+ if ($middletext ne '') {
+ $result .= '</label>';
+ }
# return $debug;
return $result;
} # end of sub linked_select_forms {
@@ -2300,7 +2310,7 @@
dire => 'Directory',
se => 'Select',
);
- $output = $lt{'dire'}.': '.
+ $output = '<label>'.$lt{'dire'}.': '.
'<select id="'.$firstselectname.'" name="'.$firstselectname.'" '.
'onchange="populateCrsSelects(this.form,'."'$firstselectname','$secondselectname',1,'$js_only',0,1,0,0,0".');">'.
'<option value="" selected="selected">'.$lt{'se'}.'</option>';
@@ -2311,10 +2321,10 @@
next if ($key eq '/');
$output .= '<option value="'.$key.'">'.$key.'</option>'."\n";
}
- $output .= '</select><br />'."\n".
+ $output .= '</select></label><br /><label>'."\n".
$lt{'fnam'}.': <select id="'.$secondselectname.'" name="'.$secondselectname.'">'."\n".
'<option value="" selected="selected"></option>'."\n".
- '</select>'."\n".
+ '</select></label>'."\n".
'<input type="hidden" id="crsres_include_'.$suffix.'" value="'.$only.'" />';
return ($numdirs,$output);
}
Index: loncom/interface/londocs.pm
diff -u loncom/interface/londocs.pm:1.722 loncom/interface/londocs.pm:1.723
--- loncom/interface/londocs.pm:1.722 Tue Jan 7 21:01:37 2025
+++ loncom/interface/londocs.pm Mon Feb 3 22:52:36 2025
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: londocs.pm,v 1.722 2025/01/07 21:01:37 raeburn Exp $
+# $Id: londocs.pm,v 1.723 2025/02/03 22:52:36 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2526,6 +2526,15 @@
&LONCAPA::map::qtescape($env{'docs.markedcopy_title_'.$suffix});
} else {
my $icon = &Apache::loncommon::icon($extension);
+ my $icontext;
+ if ($extension eq 'sequence') {
+ $icontext = &mt('folder icon');
+ } elsif ($extension eq 'page') {
+ $icontext = &mt('composite page icon');
+ } else {
+ $icontext = &mt('file icon');
+ }
+ $icontext = &HTML::Entities::encode($icontext);
if ($extension eq 'sequence' &&
$url =~ m{/default_\d+\.sequence$}x) {
$icon = &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL'));
@@ -2535,7 +2544,7 @@
if ($title eq '') {
($title) = ($url =~ m{/([^/]+)$});
}
- $buffer = '<img src="'.$icon.'" alt="" class="LC_icon" />'.
+ $buffer = '<img src="'.$icon.'" alt="'.$icontext.'" class="LC_icon" />'.
': '.
&Apache::loncommon::parse_supplemental_title(
&LONCAPA::map::qtescape($title));
@@ -4971,16 +4980,18 @@
if (!$allowed) {
$helpitem = 'Supplemental_Navigation';
}
- $toolslink = '<table><tr><td>'
+ $toolslink = '<div class="LC_navtools">'
+ .'<div class="LC_navtools">'
.&Apache::loncommon::help_open_menu('Navigation Screen',
$helpitem,undef,'RAT')
- .'</td><td class="LC_middle">'.&mt('Tools:').'</td>'
- .'<td align="left"><ul id="LC_toolbar">'
+ .'</div><div class="LC_navtools">'.&mt('Tools:').'</div>'
+ .'<div class="LC_navtools">'."\n".'<ul id="LC_toolbar">'
.'<li><a href="/adm/coursedocs?forcesupplement=1&command=editsupp" '
.'id="LC_content_toolbar_edittoplevel" '
.'class="LC_toolbarItem" '
.'title="'.&mt('Supplemental Content Editor').'">'
- .'</a></li></ul></td></tr></table><br />';
+ .'</a></li></ul></div></div>'."\n"
+ .'<div style="padding:0;clear:both;margin:0;border:0"></div><br />'."\n";
}
if ($shown) {
if ($allowed) {
@@ -5483,7 +5494,7 @@
$copylink=(<<ENDCOPY);
<form name="$formname" method="post" action="/adm/coursedocs">
$form_common
-<input type="checkbox" name="copy" id="copy_$orderidx" value="$orderidx" onclick="javascript:singleCheck(this,'$orderidx','copy');" class="LC_hidden" $disabled /><a href="$js" class="LC_docs_copy">$lt{'cp'}</a>
+<label><input type="checkbox" name="copy" id="copy_$orderidx" value="$orderidx" onclick="javascript:singleCheck(this,'$orderidx','copy');" class="LC_hidden" $disabled /><a href="$js" class="LC_docs_copy">$lt{'cp'}</a></label>
$form_end
ENDCOPY
if (($ishash) && (ref($filtersref->{'cancopy'}) eq 'ARRAY')) {
@@ -5501,7 +5512,7 @@
<form name="$formname" method="post" action="/adm/coursedocs">
$form_common
<input type="hidden" name="skip_$orderidx" id="skip_cut_$orderidx" value="$skip_confirm" />
-<input type="checkbox" name="cut" id="cut_$orderidx" value="$orderidx" onclick="javascript:singleCheck(this,'$orderidx','cut');" class="LC_hidden" $disabled /><a href="$js" class="LC_docs_cut">$lt{'ct'}</a>
+<label><input type="checkbox" name="cut" id="cut_$orderidx" value="$orderidx" onclick="javascript:singleCheck(this,'$orderidx','cut');" class="LC_hidden" $disabled /><a href="$js" class="LC_docs_cut">$lt{'ct'}</a></label>
$form_end
ENDCUT
if (($ishash) && (ref($filtersref->{'cancut'}) eq 'ARRAY')) {
@@ -5520,7 +5531,7 @@
$form_common
<input type="hidden" name="skip_$orderidx" id="skip_remove_$orderidx" value="$skip_confirm" />
<input type="hidden" name="confirm_rem_$orderidx" id="confirm_removal_$orderidx" value="$confirm_removal" />
-<input type="checkbox" name="remove" id="remove_$orderidx" value="$orderidx" onclick="javascript:singleCheck(this,'$orderidx','remove');" class="LC_hidden" $disabled /><a href="$js" class="LC_docs_remove">$lt{'rm'}</a>
+<label><input type="checkbox" name="remove" id="remove_$orderidx" value="$orderidx" onclick="javascript:singleCheck(this,'$orderidx','remove');" class="LC_hidden" $disabled /><a href="$js" class="LC_docs_remove">$lt{'rm'}</a></label>
$form_end
ENDREM
if (($ishash) && (ref($filtersref->{'canremove'}) eq 'ARRAY')) {
@@ -5565,8 +5576,17 @@
</td>
END
}
+ my $icontext;
# Figure out what kind of a resource this is
my ($extension)=($url=~/\.(\w+)$/);
+ if ($extension eq 'sequence') {
+ $icontext = &mt('folder icon');
+ } elsif ($extension eq 'page') {
+ $icontext = &mt('composite page icon');
+ } else {
+ $icontext = &mt('file icon');
+ }
+ $icontext = &HTML::Entities::encode($icontext);
my $uploaded=($url=~/^\/*uploaded\//);
my $icon=&Apache::loncommon::icon($url);
my $isfolder;
@@ -5908,9 +5928,9 @@
}
}
if ($nolink) {
- $line .= '<img src="'.$icon.'" alt="" class="LC_icon" /></a>';
+ $line .= '<img src="'.$icon.'" alt="'.$icontext.'" class="LC_icon" /></a>';
} else {
- $line.='<a href="'.$url.'"><img src="'.$icon.'" alt="" class="LC_icon" /></a>';
+ $line.='<a href="'.$url.'"><img src="'.$icon.'" alt="'.$icontext.'" class="LC_icon" /></a>';
}
} elsif ($url) {
if ($anchor ne '') {
@@ -5940,16 +5960,16 @@
}
}
if ($nolink) {
- $line.='<img src="'.$icon.'" alt="" class="LC_icon" />';
+ $line.='<img src="'.$icon.'" alt="'.$icontext.'" class="LC_icon" />';
} elsif ($nomodal) {
$line.='<a href="#" onclick="javascript:window.open('."'$link','syllabuspreview','height=400,width=500,scrollbars=1,resizable=1,menubar=0,location=1')".'; return false;" />'.
- '<img src="'.$icon.'" alt="" class="LC_icon" border="0" /></a>';
+ '<img src="'.$icon.'" alt="'.$icontext.'" class="LC_icon" border="0" /></a>';
} else {
$line.=&Apache::loncommon::modal_link($link,
- '<img src="'.$icon.'" alt="" class="LC_icon" />',600,500);
+ '<img src="'.$icon.'" alt="'.$icontext.'" class="LC_icon" />',600,500);
}
} else {
- $line.='<img src="'.$icon.'" alt="" class="LC_icon" />';
+ $line.='<img src="'.$icon.'" alt="'.$icontext.'" class="LC_icon" />';
}
$line.='</span></td><td'.$tdwidth.'>';
if (($url=~m{/adm/(coursedocs|supplemental)}) || (!$allowed && $url)) {
@@ -7591,10 +7611,6 @@
my $quotainfo = '<p>'.&mt('Currently using [_1] of the [_2] available.',
$percent.'%',$quota.' MB').'</p>';
- my $fileupload=(<<FIUP);
- $quotainfo
- $lt{'file'}:<br />
-FIUP
my $checkbox=(<<CHBO);
<!-- <label>$lt{'parse'}?
<input type="checkbox" name="parserflag" />
@@ -7613,8 +7629,9 @@
<form name="uploadims" action="/adm/imsimportdocs" method="post" enctype="multipart/form-data" target="IMSimport">
<fieldset id="uploadimsform" style="display: none;">
<legend>$lt{'imsf'}</legend>
- $fileupload
- <input type="file" name="uploaddoc" id="uploaddocims" class="LC_flUpload LC_uploaddoc" size="40" $disabled />
+ $quotainfo
+ <label>$lt{'file'}:<br />
+ <input type="file" name="uploaddoc" id="uploaddocims" class="LC_flUpload LC_uploaddoc" size="40" $disabled /></label>
<input type="hidden" id="LC_free_space_ims" value="$free_space" />
<br />
<p>
@@ -7641,12 +7658,14 @@
<fieldset id="uploaddocform" style="display: none;">
<legend>$lt{'upfi'}</legend>
<input type="hidden" name="active" value="aa" />
- $fileupload
- <input type="file" name="uploaddoc" class="LC_flUpload" size="40" $disabled />
+ $quotainfo
+ <label>$lt{'file'}:<br />
+ <input type="file" name="uploaddoc" class="LC_flUpload" size="40" $disabled /></label>
<input type="hidden" id="LC_free_space" value="$free_space" />
<br />
+ <label>
$lt{'title'}:<br />
- <input type="text" size="60" name="comment" $disabled />
+ <input type="text" size="60" name="comment" $disabled /></label>
$pathitem
<input type="hidden" name="cmd" value="upload_default" />
<br />
@@ -7672,11 +7691,11 @@
<fieldset id="importmapform" style="display: none;">
<legend>$lt{'impm'}</legend>
<input type="hidden" name="active" value="bb" />
- $lt{'copm'}<br />
+ <label>$lt{'copm'}<br />
<span class="LC_nobreak">
<input type="text" name="importmap" size="40" value=""
onfocus="this.blur();$mapimportjs" $disabled />
- <a href="$mapimportjs">$lt{'selm'}</a></span><br />
+ <a href="$mapimportjs">$lt{'selm'}</a></span></label><br />
<input type="submit" name="loadmap" value="$lt{'load'}" $disabled />
</fieldset>
</form>
@@ -7717,9 +7736,9 @@
<div id="importcrsrescontent" style="display: none;">
<input type="hidden" name="active" value="bb" />
$pickfile
- <p>
+ <p><label>
$lt{'title'}: <input type="text" name="crsrestitle" value="" $disabled />
- </p>
+ </label></p>
<input type="hidden" name="importdetail" value="" />
<input type="submit" name="crsres" value="$lt{'impo'}" $disabled /><br />
</div>
@@ -7982,7 +8001,7 @@
$is_home{'course'} = 1;
}
$rolehomes .= '<input type="hidden" id="rolehome_course" name="rolehome_course" value="'.$crshome.'" />'."\n";
- my $pickdir = $lt{'loca'}.
+ my $pickdir = '<label>'.$lt{'loca'}.
'<select name="authorrole" onchange="populateDirSelects(this.form,'."'authorrole','authorpath'".',1,1,0);">'."\n".
'<option value="" selected="selected">'.&mt('Select').'</option>'."\n";
if ($env{'user.author'}) {
@@ -8003,11 +8022,11 @@
if ($checkcrsres) {
$pickdir .= '<option value="course">'.&mt('Course Resource').'</option>'."\n";
}
- $pickdir .= '</select><br />'."\n".
- $lt{'dire'}.
+ $pickdir .= '</select></label><br />'."\n".
+ '<label>'.$lt{'dire'}.
'<select name="authorpath" onchange="toggleCrsResTitle();">'.
'<option value=""></option>'.
- '</select><br />'."\n";
+ '</select></label><br />'."\n";
my %seltemplate_menus;
my @files = &Apache::lonhomework::get_template_list('problem');
my @noexamplelink = ('blank.problem','blank.library','script.library');
@@ -8040,12 +8059,17 @@
}
}
- my $templates = $lt{'cate'}.' '.
- &Apache::loncommon::linked_select_forms('courseresform','<br />'.$lt{'tmpl'}.' ',
- $defcategory,'tempcategory','template',
- \%seltemplate_menus,\@catorder,
- "resize_scrollbox('contentscroll','1','0');",
- "toggleExampleText();",'template').'<br />';
+ my ($templates,$haslabel);
+ if ($lt{'cate'} ne '') {
+ $templates = '<label>';
+ $haslabel = 1;
+ }
+ $templates .= $lt{'cate'}.' '.
+ &Apache::loncommon::linked_select_forms('courseresform','<br />'.$lt{'tmpl'}.' ',
+ $defcategory,'tempcategory','template',
+ \%seltemplate_menus,\@catorder,
+ "resize_scrollbox('contentscroll','1','0');",
+ "toggleExampleText();",'template',$haslabel).'<br />';
my $templatepreview = '<a href="#" target="sample" onclick="javascript:getExample(600,420,\'yes\',true); return false;">'.
'<span id="newresexample">'.&mt('Example').'</span></a>';
my $crsresform;
@@ -8066,12 +8090,12 @@
<label><input type="radio" name="newsubdir" value="0" onclick="toggleNewsubdir(this.form);" checked="checked" $disabled />No</label>
<label><input type="radio" name="newsubdir" value="1" onclick="toggleNewsubdir(this.form);" $disabled />Yes</label>
- </span><span id="newsubdir"></span>
+ </span><label for="newsubdirname"><span id="newsubdir"></span></label>
<input type="hidden" name="newsubdirname" id="newsubdirname" value="" autocomplete="off" />
</p>
</div>
- $lt{'fnam'}
- <input type="text" size="20" name="newresourcename" autocomplete="off" $disabled />
+ <label>$lt{'fnam'}
+ <input type="text" size="20" name="newresourcename" autocomplete="off" $disabled /></label>
<div id="newresource" style="display:none">
<p>
$lt{'addp'}
@@ -8079,7 +8103,7 @@
$lt{'no'}</label>
<label><input type="radio" name="newresourceadd" value="1" onclick="toggleNewInCourse(this.form);" $disabled />
$lt{'yes'}</label>
- <span id="newrestitle"></span>
+ <label for="newresourcetitle"><span id="newrestitle"></span></label>
<input type="hidden" size="20" name="newresourcetitle" id="newresourcetitle" autocomplete="off" $disabled />
</p>
</div>
@@ -8274,8 +8298,9 @@
<fieldset id="uploadsuppdocform" style="display: none;">
<legend>$lt{'upfi'}</legend>
<input type="hidden" name="active" value="ee" />
- $fileupload
- <input type="file" name="uploaddoc" id="uploaddocsupp" class="LC_flUpload LC_uploaddoc" size="40" $disabled />
+ $quotainfo
+ <label>$lt{'file'}:<br />
+ <input type="file" name="uploaddoc" id="uploaddocsupp" class="LC_flUpload LC_uploaddoc" size="40" $disabled /></label>
<input type="hidden" id="LC_free_space_supp" value="$free_space" />
<br />
<br />
@@ -8283,8 +8308,8 @@
$checkbox
</span>
<br /><br />
- $lt{'comment'}:<br />
- <textarea cols="50" rows="4" name="comment"></textarea>
+ <label>$lt{'comment'}:<br />
+ <textarea cols="50" rows="4" name="comment"></textarea></label>
<br />
$pathitem
<input type="hidden" name="cmd" value="upload_supplemental" />
Index: loncom/interface/lonextresedit.pm
diff -u loncom/interface/lonextresedit.pm:1.34 loncom/interface/lonextresedit.pm:1.35
--- loncom/interface/lonextresedit.pm:1.34 Wed Jul 12 00:05:02 2023
+++ loncom/interface/lonextresedit.pm Mon Feb 3 22:52:36 2025
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: lonextresedit.pm,v 1.34 2023/07/12 00:05:02 raeburn Exp $
+# $Id: lonextresedit.pm,v 1.35 2025/02/03 22:52:36 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -709,8 +709,10 @@
$chooser = "
<div>
<span$srcclass>
+<label>
$extsrc
$urlelem
+</label>
$preview
</span>
</div>
@@ -728,8 +730,10 @@
$chooser
<div $idattr style="$subdivstyle">
<span$srcclass>
+<label>
$title
<input type="text" size="$size" name="exttitle" value="$orig_title" $disabled />
+</label>
<input type="hidden" name="importdetail" value="" />
$pathitem
$hiddenelem
More information about the LON-CAPA-cvs
mailing list