[LON-CAPA-cvs] cvs: loncom /interface loncommon.pm lonpickcourse.pm
raeburn
raeburn at source.lon-capa.org
Wed Feb 4 12:52:06 EST 2026
raeburn Wed Feb 4 17:52:06 2026 EDT
Modified files:
/loncom/interface loncommon.pm lonpickcourse.pm
Log:
- WCAG 2 compliance
- Include landmark for page's main content to support "Skip to main content"
- Include labels for form elements
- Group radio buttons in fieldset with legend for screenreaders
- Sequential headings
- Satisfy w3c validation
Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.1505 loncom/interface/loncommon.pm:1.1506
--- loncom/interface/loncommon.pm:1.1505 Wed Jan 28 17:46:10 2026
+++ loncom/interface/loncommon.pm Wed Feb 4 17:52:06 2026
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.1505 2026/01/28 17:46:10 raeburn Exp $
+# $Id: loncommon.pm,v 1.1506 2026/02/04 17:52:06 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -3166,15 +3166,16 @@
=pod
-=item * &home_server_form_item($domain,$name,$defaultflag)
+=item * &home_server_form_item($domain,$name,$defaultflag,$hide,$id)
-input: 4 arguments (two required, two optional) -
+input: 5 arguments (two required, three optional) -
$domain - domain of new user
$name - name of form element
$default - Value of 'default' causes a default item to be first
option, and selected by default.
$hide - Value of 'hide' causes hiding of the name of the server,
if 1 server found, or default, if 0 found.
+ $id - Optional id of form element
output: returns 2 items:
(a) form element which contains either:
(i) <select name="$name">
@@ -3193,12 +3194,16 @@
#-------------------------------------------
sub home_server_form_item {
- my ($domain,$name,$default,$hide) = @_;
+ my ($domain,$name,$default,$hide,$id) = @_;
my %servers = &Apache::lonnet::get_servers($domain,'library');
my $result;
my $numlib = keys(%servers);
if ($numlib > 1) {
- $result .= '<select name="'.$name.'" />'."\n";
+ $result .= '<select name="'.$name.'"';
+ if ($id ne '') {
+ $result .= ' id="'.$id.'"';
+ }
+ $result .= ' />'."\n";
if ($default) {
$result .= '<option value="default" selected="selected">'.&mt('default').
'</option>'."\n";
@@ -19215,7 +19220,10 @@
}
if ($cloneableonlyform) {
$output .= &Apache::lonhtmlcommon::row_title($cloneabletitle).
- $cloneableonlyform.&Apache::lonhtmlcommon::row_closure();
+ '<fieldset class="LC_borderless"><legend class="LC_visually_hidden">'.
+ $cloneabletitle.'</legend>'.
+ $cloneableonlyform.'</fieldset>'.
+ &Apache::lonhtmlcommon::row_closure();
}
if (exists($filter->{'descriptfilter'})) {
$output .= &Apache::lonhtmlcommon::row_title('<label for="descriptfilter">'.$lt{'cde'}.'</label>')
Index: loncom/interface/lonpickcourse.pm
diff -u loncom/interface/lonpickcourse.pm:1.127 loncom/interface/lonpickcourse.pm:1.128
--- loncom/interface/lonpickcourse.pm:1.127 Sat Apr 8 14:28:56 2017
+++ loncom/interface/lonpickcourse.pm Wed Feb 4 17:52:06 2026
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Pick a course
#
-# $Id: lonpickcourse.pm,v 1.127 2017/04/08 14:28:56 raeburn Exp $
+# $Id: lonpickcourse.pm,v 1.128 2026/02/04 17:52:06 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -37,6 +37,7 @@
use Apache::lonlocal;
use Apache::longroup;
use LONCAPA qw(:DEFAULT :match);
+use HTML::Entities();
use JSON::DWIW;
sub handler {
@@ -167,7 +168,9 @@
my $js = &Apache::loncommon::js_changer();
$r->print(&Apache::loncommon::start_page($title,$js,
{'add_entries' => \%loaditem,
- 'no_nav_bar' => 1, }));
+ 'no_nav_bar' => 1, }).
+ '<div class="LC_landmark" role="main" id="LC_main_content">'.
+ '<h1 class="LC_heading_1">'.$title.'</h1>');
if ($env{'form.form'} eq 'portform') {
$lastaction = 'document.courselist.submit()';
@@ -263,7 +266,8 @@
$clonetext = '<input type="hidden" name="cloner" value="'.$env{'form.cloner'}.'" />'."\n";
}
if ($coord_cloneable) {
- $clonetext .= '<input type="hidden" name="cc_clone" value="'.$coord_cloneable.'" />';
+ $clonetext .= '<input type="hidden" name="cc_clone" value="'.
+ &HTML::Entities::encode($coord_cloneable,'"<>&').'" />';
}
if ($crscode ne '') {
$clonetext .= '<input type="hidden" name="crscode" value="'.$crscode.'" />';
@@ -317,7 +321,7 @@
$clonerudom,$crsdom,$crscode,%courses);
}
}
- $r->print(&Apache::loncommon::end_page());
+ $r->print('</div>'.&Apache::loncommon::end_page());
return OK;
}
More information about the LON-CAPA-cvs
mailing list