[LON-CAPA-cvs] cvs: loncom /interface courseprefs.pm
raeburn
raeburn at source.lon-capa.org
Sat Apr 18 01:52:51 EDT 2026
raeburn Sat Apr 18 05:52:51 2026 EDT
Modified files:
/loncom/interface courseprefs.pm
Log:
- WCAG 2.2 compliance -- satisfy minimum spacing between touch targets.
-------------- next part --------------
Index: loncom/interface/courseprefs.pm
diff -u loncom/interface/courseprefs.pm:1.144 loncom/interface/courseprefs.pm:1.145
--- loncom/interface/courseprefs.pm:1.144 Sat Apr 18 05:50:17 2026
+++ loncom/interface/courseprefs.pm Sat Apr 18 05:52:51 2026
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set configuration settings for a course
#
-# $Id: courseprefs.pm,v 1.144 2026/04/18 05:50:17 raeburn Exp $
+# $Id: courseprefs.pm,v 1.145 2026/04/18 05:52:51 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -6350,12 +6350,14 @@
text => &mt($itemtext->{'student_classlist_opt_in'}),
input => 'radio',
legend => &mt($itemtext->{'student_classlist_opt_in'}),
+ lineheight => '180%',
},
'student_classlist_portfiles' => {
text => &mt($itemtext->{'student_classlist_portfiles'}),
input => 'radio',
legend => &mt($itemtext->{'student_classlist_portfiles'}),
+ lineheight => '180%',
},
);
unless (($settings->{'student_classlist_view'} eq 'all') ||
@@ -6391,11 +6393,13 @@
text => &mt($itemtext->{'pageseparators'}),
input => 'radio',
legend => &mt($itemtext->{'pageseparators'}),
+ lineheight => '180%',
},
'disable_receipt_display' => {
text => &mt($itemtext->{'disable_receipt_display'}),
input => 'radio',
- legend => &mt($itemtext->{'disable_receipt_display'})
+ legend => &mt($itemtext->{'disable_receipt_display'}),
+ lineheight => '180%',
},
'texengine' => {
text => &mt($itemtext->{'texengine'}),
@@ -6419,16 +6423,19 @@
text => &mt($itemtext->{'uselcmath'}),
input => 'radio',
legend => &mt($itemtext->{'uselcmath'}),
+ lineheight => '180%',
},
'usejsme' => {
text => &mt($itemtext->{'usejsme'}),
input => 'radio',
legend => &mt($itemtext->{'usejsme'}),
+ lineheight => '180%',
},
'inline_chem' => {
text => &mt($itemtext->{'inline_chem'}),
input => 'radio',
legend => &mt($itemtext->{'inline_chem'}),
+ lineheight => '180%',
},
'extresource' => {
text => &mt($itemtext->{'extresource'}),
@@ -6500,6 +6507,7 @@
text => &mt($itemtext->{'disablesigfigs'}),
input => 'radio',
legend => &mt($itemtext->{'disablesigfigs'}),
+ lineheight => '180%',
},
);
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'grading',$noedit,$cnum);
@@ -6529,11 +6537,13 @@
text => &mt($itemtext->{'problem_stream_switch'}),
input => 'radio',
legend => &mt($itemtext->{'problem_stream_switch'}),
+ lineheight => '180%',
},
suppress_tries => {
text => &mt($itemtext->{'suppress_tries'}),
input => 'radio',
legend => &mt($itemtext->{'suppress_tries'}),
+ lineheight => '180%',
},
default_paper_size => {
text => &mt($itemtext->{'default_paper_size'}),
@@ -6561,6 +6571,7 @@
text => &mt($itemtext->{'disableexampointprint'}),
input => 'radio',
legend => &mt($itemtext->{'disableexampointprint'}),
+ lineheight => '180%',
},
canuse_pdfforms => {
text => &mt($itemtext->{'canuse_pdfforms'}),
@@ -6777,7 +6788,7 @@
'<label><input type="checkbox" name="ltitools_del" value="'.$item.'" />'.
&mt('Delete?').'</label></span></td>'.
'<td colspan="2">'.
- '<fieldset><legend>'.&mt('Required settings').'</legend>'.
+ '<fieldset style="line-height: 190%;"><legend>'.&mt('Required settings').'</legend>'.
'<span class="LC_nobreak"><label>'.$lt{'title'}.':<input type="text" size="20" name="ltitools_title_'.$i.'" value="'.$title.'" /></label></span> '.
(' 'x2).
'<span class="LC_nobreak"><label for="ltitools_version_'.$i.'">'.$lt{'version'}.'</label>:<select name="ltitools_version_'.$i.'" id="ltitools_version_'.$i.'">'.
@@ -6838,13 +6849,13 @@
'</label> </span><div id="ltitools_divchgsecret_'.$i.'" style="display:none" />'.
'<span class="LC_nobreak">'.&mt('New Secret').':'.
'<input type="password" size="20" name="ltitools_secret_'.$i.'" value="" autocomplete="new-password"'.$disabled.' />'.
- '<label><input type="checkbox" name="ltitools_visible_'.$i.'" id="ltitools_visible_'.$i.'" onclick="if (this.checked) { this.form.ltitools_secret_'.$i.'.type='."'text'".' } else { this.form.ltitools_secret_'.$i.'.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label>'.
+ ' <label><input type="checkbox" name="ltitools_visible_'.$i.'" id="ltitools_visible_'.$i.'" onclick="if (this.checked) { this.form.ltitools_secret_'.$i.'.type='."'text'".' } else { this.form.ltitools_secret_'.$i.'.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label>'.
'<input type="hidden" name="ltitools_id_'.$i.'" value="'.$item.'" /></span></div>';
} else {
$datatable .=
'<span class="LC_nobreak">'.$lt{'secret'}.':'.
'<input type="password" size="20" name="ltitools_secret_'.$i.'" value="" autocomplete="new-password"'.$disabled.' />'.
- '<label><input type="checkbox" name="ltitools_visible_'.$i.'" id="ltitools_visible_'.$i.'" onclick="if (this.checked) { this.form.ltitools_secret_'.$i.'.type='."'text'".' } else { this.form.ltitools_secret_'.$i.'.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label>'.
+ ' <label><input type="checkbox" name="ltitools_visible_'.$i.'" id="ltitools_visible_'.$i.'" onclick="if (this.checked) { this.form.ltitools_secret_'.$i.'.type='."'text'".' } else { this.form.ltitools_secret_'.$i.'.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label>'.
'<input type="hidden" name="ltitools_id_'.$i.'" value="'.$item.'" /></span>';
}
}
@@ -7092,7 +7103,7 @@
$datatable .= '</select> '."\n".
'<label><input type="checkbox" name="ltitools_add" value="1" />'.&mt('Add').'</label></span></td>'."\n".
'<td colspan="2">'.
- '<fieldset><legend>'.&mt('Required settings').'</legend>'.
+ '<fieldset style="line-height: 190%;"><legend>'.&mt('Required settings').'</legend>'.
'<span class="LC_nobreak"><label>'.$lt{'title'}.':<input type="text" size="20" name="ltitools_add_title" value="" /></label></span> '."\n".
(' 'x2).
'<span class="LC_nobreak"><label for="ltitools_add_version">'.$lt{'version'}.'</label>:<select name="ltitools_add_version" id="ltitools_add_version">'.
@@ -7113,7 +7124,7 @@
$datatable .= '<span class="LC_nobreak"><label>'.$lt{'key'}.':<input type="text" size="25" name="ltitools_add_key" value="" autocomplete="off"'.$disabled.' /></label></span> '."\n".
(' 'x2).
'<span class="LC_nobreak"><label>'.$lt{'secret'}.':<input type="password" size="20" name="ltitools_secret_add" value="" autocomplete="new-password"'.$disabled.' /></label>'.
- '<label><input type="checkbox" name="ltitools_add_visible" id="ltitools_add_visible" onclick="if (this.checked) { this.form.ltitools_secret_add.type='."'text'".' } else { this.form.ltitools_secret_add.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label></span> '."\n";
+ ' <label><input type="checkbox" name="ltitools_add_visible" id="ltitools_add_visible" onclick="if (this.checked) { this.form.ltitools_secret_add.type='."'text'".' } else { this.form.ltitools_secret_add.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label></span> '."\n";
}
$datatable .= '<br /><br />'.
'</fieldset>'.
@@ -7341,16 +7352,19 @@
subtext => $domdefs,
input => 'radio',
legend => &mt($itemtext->{'lti.override'}),
+ lineheight => '180%',
},
'lti.topmenu' => {
text => &mt($itemtext->{'lti.topmenu'}),
input => 'radio',
legend => &mt($itemtext->{'lti.topmenu'}),
+ lineheight => '180%',
},
'lti.inlinemenu' => {
text => &mt($itemtext->{'lti.inlinemenu'}),
input => 'radio',
legend => &mt($itemtext->{'lti.inlinemenu'}),
+ lineheight => '180%',
},
'lti.lcmenu' => {
text => &mt($itemtext->{'lti.lcmenu'}),
@@ -7506,7 +7520,7 @@
$datatable .= &item_table_row_start('<em class="LC_nav_bar">'.$num.'</em>','','','',$count,'','','','LC_left_item');
foreach my $category (@order) {
if ((ref($categories{$category}) eq 'ARRAY') && (@{$categories{$category}} > 0)) {
- $datatable .= '<fieldset style="vertical-align:top; display:inline-block"><legend>'.$menutitles{$category}.'</legend>'."\n";
+ $datatable .= '<fieldset style="vertical-align: top; display: inline-block; line-height: 185%;"><legend>'.$menutitles{$category}.'</legend>'."\n";
if ($category eq 'text') {
$datatable .= '<i>'.&mt('Header').'</i><br />';
}
@@ -7851,13 +7865,13 @@
'</label> </span><div id="linkprot_divchgsecret_'.$i.'" style="display:none" />'.
'<span class="LC_nobreak"><label>'.&mt('New Secret').':'.
'<input type="password" size="20" name="linkprot_secret_'.$i.'" value="" autocomplete="new-password"'.$disabled.' /></label>'.
- '<label><input type="checkbox" name="linkprot_visible_'.$i.'" id="linkprot_visible_'.$i.'" onclick="if (this.checked) { this.form.linkprot_secret_'.$i.'.type='."'text'".' } else { this.form.linkprot_secret_'.$i.'.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label>'.
+ ' <label><input type="checkbox" name="linkprot_visible_'.$i.'" id="linkprot_visible_'.$i.'" onclick="if (this.checked) { this.form.linkprot_secret_'.$i.'.type='."'text'".' } else { this.form.linkprot_secret_'.$i.'.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label>'.
'<input type="hidden" name="linkprot_id_'.$i.'" value="'.$num.'" /></span></div>';
} else {
$datatable .=
'<span class="LC_nobreak"><label>'.$desc{'secret'}.':'.
'<input type="password" size="20" name="linkprot_secret_'.$i.'" value="" autocomplete="new-password"'.$disabled.' /></label>'.
- '<label><input type="checkbox" name="linkprot_visible_'.$i.'" id="linkprot_visible_'.$i.'" onclick="if (this.checked) { this.form.linkprot_secret_'.$i.'.type='."'text'".' } else { this.form.linkprot_secret_'.$i.'.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label>'.
+ ' <label><input type="checkbox" name="linkprot_visible_'.$i.'" id="linkprot_visible_'.$i.'" onclick="if (this.checked) { this.form.linkprot_secret_'.$i.'.type='."'text'".' } else { this.form.linkprot_secret_'.$i.'.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label>'.
'<input type="hidden" name="linkprot_id_'.$i.'" value="'.$num.'" /></span>';
}
}
@@ -7944,7 +7958,7 @@
$datatable .= '<span class="LC_nobreak"><label>'.$desc{'key'}.':<input type="text" size="25" name="linkprot_key_add" value="" autocomplete="off"'.$disabled.' /></label></span> '."\n".
(' 'x2).
'<span class="LC_nobreak"><label>'.$desc{'secret'}.':<input type="password" size="20" name="linkprot_secret_add" value="" autocomplete="new-password"'.$disabled.' /></label>'.
- '<label><input type="checkbox" name="linkprot_visible_add" id="linkprot_visible_add" onclick="if (this.checked) { this.form.linkprot_secret_add.type='."'text'".' } else { this.form.linkprot_secret_add.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label></span> '."\n";
+ ' <label><input type="checkbox" name="linkprot_visible_add" id="linkprot_visible_add" onclick="if (this.checked) { this.form.linkprot_secret_add.type='."'text'".' } else { this.form.linkprot_secret_add.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label></span> '."\n";
}
$datatable .= '<br /><br />'.
'<span class="LC_nobreak">'.$desc{'passback'}.'?'.
@@ -8209,7 +8223,7 @@
}
sub yesno_radio {
- my ($item,$legend,$settings,$unsetdefault,$valueyes,$valueno,$noedit,$onclick,$reverse) = @_;
+ my ($item,$legend,$settings,$unsetdefault,$valueyes,$valueno,$noedit,$lineheight,$onclick,$reverse) = @_;
my $itemon = ' ';
my $itemoff = ' checked="checked" ';
if (($valueyes eq '') && ($valueno eq '')) {
@@ -8234,15 +8248,18 @@
} elsif ($onclick) {
$onclick = ' onclick="'.$onclick.'"';
}
- my ($start_fieldset,$end_fieldset);
+ my ($start_fieldset,$end_fieldset,$spansty);
if ($legend) {
$start_fieldset = '<fieldset class="LC_borderless"><legend class="LC_visually_hidden">'.
$legend.'</legend>'."\n";
$end_fieldset = '</fieldset>'."\n";
}
+ if ($lineheight ne '') {
+ $spansty = ' style="line-height: '.$lineheight.'"';
+ }
if ($reverse) {
return $start_fieldset.
- '<span class="LC_nobreak"><label>'.
+ '<span class="LC_nobreak"'.$spansty.'><label>'.
'<input type="radio" name="'.$item.'"'.
$itemoff.' value="'.$valueno.'"'.$disabled.$onclick.' />'.&mt('No').'</label> '.
'<label><input type="radio" name="'.$item.'"'.
@@ -8250,7 +8267,7 @@
$end_fieldset;
} else {
return $start_fieldset.
- '<span class="LC_nobreak"><label>'.
+ '<span class="LC_nobreak"'.$spansty.'><label>'.
'<input type="radio" name="'.$item.'"'.
$itemon.' value="'.$valueyes.'"'.$disabled.$onclick.' />'.&mt('Yes').'</label> '.
'<label><input type="radio" name="'.$item.'"'.
@@ -8386,7 +8403,8 @@
$valueyes = '1';
}
$datatable .= &yesno_radio($item,$items->{$item}{legend},$settings,
- $unsetdefault,$valueyes,$valueno,$noedit);
+ $unsetdefault,$valueyes,$valueno,$noedit,
+ $items->{$item}{'lineheight'});
} elsif ($items->{$item}{input} eq 'selectbox') {
my $curr = $settings->{$item};
my ($id,$onchange);
@@ -8455,7 +8473,7 @@
&mt('Hide Course Points Totals').'</legend>'.
'<div style="position: relative; top: 0%; float:left">'.
&yesno_radio('hidetotals','',\%current,$unsetdefault,$valueyes,$valueno,$noedit,
- $onclick,$reverse).'</div>'.
+ '',$onclick,$reverse).'</div>'.
$sectionbox.
'</fieldset><div style="padding:0;clear:both;margin:0;border:0"></div>';
} elsif ($item eq 'maxsizepdfform') {
More information about the LON-CAPA-cvs
mailing list