Fossil SCM

Integrate ARIA suggestions from Peter Laursen.

drh 2020-05-16 01:08 trunk
Commit 7dd07b2e0120156ec84e8e5f6760aaac6f0da23ffb4dea4eb1bc960a2f14ca1f
--- skins/default/header.txt
+++ skins/default/header.txt
@@ -17,11 +17,11 @@
1717
html "<a href='$home$url' class='active $cls'>$name</a>\n"
1818
} else {
1919
html "<a href='$home$url' class='$cls'>$name</a>\n"
2020
}
2121
}
22
-html "<a id='hbbtn' href='$home/sitemap'>&#9776;</a>"
22
+html "<a id='hbbtn' href='$home/sitemap' aria-label='Site Map'>&#9776;</a>"
2323
menulink $index_page Home {}
2424
if {[anycap jor]} {
2525
menulink /timeline Timeline {}
2626
}
2727
if {[hascap oh]} {
2828
--- skins/default/header.txt
+++ skins/default/header.txt
@@ -17,11 +17,11 @@
17 html "<a href='$home$url' class='active $cls'>$name</a>\n"
18 } else {
19 html "<a href='$home$url' class='$cls'>$name</a>\n"
20 }
21 }
22 html "<a id='hbbtn' href='$home/sitemap'>&#9776;</a>"
23 menulink $index_page Home {}
24 if {[anycap jor]} {
25 menulink /timeline Timeline {}
26 }
27 if {[hascap oh]} {
28
--- skins/default/header.txt
+++ skins/default/header.txt
@@ -17,11 +17,11 @@
17 html "<a href='$home$url' class='active $cls'>$name</a>\n"
18 } else {
19 html "<a href='$home$url' class='$cls'>$name</a>\n"
20 }
21 }
22 html "<a id='hbbtn' href='$home/sitemap' aria-label='Site Map'>&#9776;</a>"
23 menulink $index_page Home {}
24 if {[anycap jor]} {
25 menulink /timeline Timeline {}
26 }
27 if {[hascap oh]} {
28
--- src/capabilities.c
+++ src/capabilities.c
@@ -239,11 +239,11 @@
239239
char *zOneLiner; /* One-line summary */
240240
} aCap[] = {
241241
{ 'a', CAPCLASS_SUPER, 0,
242242
"Admin", "Create and delete users" },
243243
{ 'b', CAPCLASS_WIKI|CAPCLASS_TKT, 0,
244
- "Attach", "Add attchments to wiki or tickets" },
244
+ "Attach", "Add attachments to wiki or tickets" },
245245
{ 'c', CAPCLASS_TKT, 0,
246246
"Append-Tkt", "Append to existing tickets" },
247247
/*
248248
** d unused since fork from CVSTrac;
249249
** see https://fossil-scm.org/forum/forumpost/43c78f4bef
250250
--- src/capabilities.c
+++ src/capabilities.c
@@ -239,11 +239,11 @@
239 char *zOneLiner; /* One-line summary */
240 } aCap[] = {
241 { 'a', CAPCLASS_SUPER, 0,
242 "Admin", "Create and delete users" },
243 { 'b', CAPCLASS_WIKI|CAPCLASS_TKT, 0,
244 "Attach", "Add attchments to wiki or tickets" },
245 { 'c', CAPCLASS_TKT, 0,
246 "Append-Tkt", "Append to existing tickets" },
247 /*
248 ** d unused since fork from CVSTrac;
249 ** see https://fossil-scm.org/forum/forumpost/43c78f4bef
250
--- src/capabilities.c
+++ src/capabilities.c
@@ -239,11 +239,11 @@
239 char *zOneLiner; /* One-line summary */
240 } aCap[] = {
241 { 'a', CAPCLASS_SUPER, 0,
242 "Admin", "Create and delete users" },
243 { 'b', CAPCLASS_WIKI|CAPCLASS_TKT, 0,
244 "Attach", "Add attachments to wiki or tickets" },
245 { 'c', CAPCLASS_TKT, 0,
246 "Append-Tkt", "Append to existing tickets" },
247 /*
248 ** d unused since fork from CVSTrac;
249 ** see https://fossil-scm.org/forum/forumpost/43c78f4bef
250
+2 -1
--- src/captcha.c
+++ src/captcha.c
@@ -558,11 +558,12 @@
558558
/*
559559
** Add a "Speak the captcha" button.
560560
*/
561561
void captcha_speakit_button(unsigned int uSeed, const char *zMsg){
562562
if( zMsg==0 ) zMsg = "Speak the text";
563
- @ <input type="button" value="%h(zMsg)" id="speakthetext">
563
+ @ <input aria-label="%h(zMsg)" type="button" value="%h(zMsg)" \
564
+ @ id="speakthetext">
564565
@ <script nonce="%h(style_nonce())">
565566
@ document.getElementById("speakthetext").onclick = function(){
566567
@ var audio = window.fossilAudioCaptcha \
567568
@ || new Audio("%R/captcha-audio/%u(uSeed)");
568569
@ window.fossilAudioCaptcha = audio;
569570
--- src/captcha.c
+++ src/captcha.c
@@ -558,11 +558,12 @@
558 /*
559 ** Add a "Speak the captcha" button.
560 */
561 void captcha_speakit_button(unsigned int uSeed, const char *zMsg){
562 if( zMsg==0 ) zMsg = "Speak the text";
563 @ <input type="button" value="%h(zMsg)" id="speakthetext">
 
564 @ <script nonce="%h(style_nonce())">
565 @ document.getElementById("speakthetext").onclick = function(){
566 @ var audio = window.fossilAudioCaptcha \
567 @ || new Audio("%R/captcha-audio/%u(uSeed)");
568 @ window.fossilAudioCaptcha = audio;
569
--- src/captcha.c
+++ src/captcha.c
@@ -558,11 +558,12 @@
558 /*
559 ** Add a "Speak the captcha" button.
560 */
561 void captcha_speakit_button(unsigned int uSeed, const char *zMsg){
562 if( zMsg==0 ) zMsg = "Speak the text";
563 @ <input aria-label="%h(zMsg)" type="button" value="%h(zMsg)" \
564 @ id="speakthetext">
565 @ <script nonce="%h(style_nonce())">
566 @ document.getElementById("speakthetext").onclick = function(){
567 @ var audio = window.fossilAudioCaptcha \
568 @ || new Audio("%R/captcha-audio/%u(uSeed)");
569 @ window.fossilAudioCaptcha = audio;
570
+1 -1
--- src/doc.c
+++ src/doc.c
@@ -810,11 +810,11 @@
810810
** WEBPAGE: doc
811811
** URL: /uv/FILE
812812
** URL: /doc/CHECKIN/FILE
813813
**
814814
** CHECKIN can be either tag or hash prefix or timestamp identifying a
815
-** particular check, or the name of a branch (meaning the most recent
815
+** particular check-in, or the name of a branch (meaning the most recent
816816
** check-in on that branch) or one of various magic words:
817817
**
818818
** "tip" means the most recent check-in
819819
**
820820
** "ckout" means the current check-out, if the server is run from
821821
--- src/doc.c
+++ src/doc.c
@@ -810,11 +810,11 @@
810 ** WEBPAGE: doc
811 ** URL: /uv/FILE
812 ** URL: /doc/CHECKIN/FILE
813 **
814 ** CHECKIN can be either tag or hash prefix or timestamp identifying a
815 ** particular check, or the name of a branch (meaning the most recent
816 ** check-in on that branch) or one of various magic words:
817 **
818 ** "tip" means the most recent check-in
819 **
820 ** "ckout" means the current check-out, if the server is run from
821
--- src/doc.c
+++ src/doc.c
@@ -810,11 +810,11 @@
810 ** WEBPAGE: doc
811 ** URL: /uv/FILE
812 ** URL: /doc/CHECKIN/FILE
813 **
814 ** CHECKIN can be either tag or hash prefix or timestamp identifying a
815 ** particular check-in, or the name of a branch (meaning the most recent
816 ** check-in on that branch) or one of various magic words:
817 **
818 ** "tip" means the most recent check-in
819 **
820 ** "ckout" means the current check-out, if the server is run from
821
+3 -3
--- src/forum.c
+++ src/forum.c
@@ -1013,12 +1013,12 @@
10131013
@ Title: <input type="input" name="title" value="%h(zTitle)" size="50"
10141014
@ maxlength="125"><br>
10151015
}
10161016
@ %z(href("%R/markup_help"))Markup style</a>:
10171017
mimetype_option_menu(zMimetype);
1018
- @ <br><textarea name="content" class="wikiedit" cols="80" \
1019
- @ rows="25" wrap="virtual">%h(zContent)</textarea><br>
1018
+ @ <br><textarea aria-label="Content:" name="content" class="wikiedit" \
1019
+ @ cols="80" rows="25" wrap="virtual">%h(zContent)</textarea><br>
10201020
}
10211021
10221022
/*
10231023
** WEBPAGE: forumnew
10241024
** WEBPAGE: forumedit
@@ -1236,11 +1236,11 @@
12361236
@ <input type="hidden" name="fpid" value="%h(P("fpid"))">
12371237
@ <input type="hidden" name="nullout" value="1">
12381238
@ <input type="hidden" name="mimetype" value="%h(zMimetype)">
12391239
@ <input type="hidden" name="content" value="%h(zContent)">
12401240
if( zTitle ){
1241
- @ <input type="hidden" name="title" value="%h(zTitle)">
1241
+ @ <input aria-label="Title" type="hidden" name="title" value="%h(zTitle)">
12421242
}
12431243
}else if( P("edit") ){
12441244
/* Provide an edit to the fpid post */
12451245
zMimetype = P("mimetype");
12461246
zContent = PT("content");
12471247
--- src/forum.c
+++ src/forum.c
@@ -1013,12 +1013,12 @@
1013 @ Title: <input type="input" name="title" value="%h(zTitle)" size="50"
1014 @ maxlength="125"><br>
1015 }
1016 @ %z(href("%R/markup_help"))Markup style</a>:
1017 mimetype_option_menu(zMimetype);
1018 @ <br><textarea name="content" class="wikiedit" cols="80" \
1019 @ rows="25" wrap="virtual">%h(zContent)</textarea><br>
1020 }
1021
1022 /*
1023 ** WEBPAGE: forumnew
1024 ** WEBPAGE: forumedit
@@ -1236,11 +1236,11 @@
1236 @ <input type="hidden" name="fpid" value="%h(P("fpid"))">
1237 @ <input type="hidden" name="nullout" value="1">
1238 @ <input type="hidden" name="mimetype" value="%h(zMimetype)">
1239 @ <input type="hidden" name="content" value="%h(zContent)">
1240 if( zTitle ){
1241 @ <input type="hidden" name="title" value="%h(zTitle)">
1242 }
1243 }else if( P("edit") ){
1244 /* Provide an edit to the fpid post */
1245 zMimetype = P("mimetype");
1246 zContent = PT("content");
1247
--- src/forum.c
+++ src/forum.c
@@ -1013,12 +1013,12 @@
1013 @ Title: <input type="input" name="title" value="%h(zTitle)" size="50"
1014 @ maxlength="125"><br>
1015 }
1016 @ %z(href("%R/markup_help"))Markup style</a>:
1017 mimetype_option_menu(zMimetype);
1018 @ <br><textarea aria-label="Content:" name="content" class="wikiedit" \
1019 @ cols="80" rows="25" wrap="virtual">%h(zContent)</textarea><br>
1020 }
1021
1022 /*
1023 ** WEBPAGE: forumnew
1024 ** WEBPAGE: forumedit
@@ -1236,11 +1236,11 @@
1236 @ <input type="hidden" name="fpid" value="%h(P("fpid"))">
1237 @ <input type="hidden" name="nullout" value="1">
1238 @ <input type="hidden" name="mimetype" value="%h(zMimetype)">
1239 @ <input type="hidden" name="content" value="%h(zContent)">
1240 if( zTitle ){
1241 @ <input aria-label="Title" type="hidden" name="title" value="%h(zTitle)">
1242 }
1243 }else if( P("edit") ){
1244 /* Provide an edit to the fpid post */
1245 zMimetype = P("mimetype");
1246 zContent = PT("content");
1247
+2 -2
--- src/info.c
+++ src/info.c
@@ -2769,15 +2769,15 @@
27692769
**
27702770
** Edit a check-in. (Check-ins are immutable and do not really change.
27712771
** This page really creates supplemental tags that affect the display
27722772
** of the check-in.)
27732773
**
2774
-** Query parmeters:
2774
+** Query parameters:
27752775
**
27762776
** rid=INTEGER Record ID of the check-in to edit (REQUIRED)
27772777
**
2778
-** POST parameters after pressing "Perview", "Cancel", or "Apply":
2778
+** POST parameters after pressing "Preview", "Cancel", or "Apply":
27792779
**
27802780
** c=TEXT New check-in comment
27812781
** u=TEXT New user name
27822782
** newclr Apply a background color
27832783
** clr=TEXT New background color (only if newclr)
27842784
--- src/info.c
+++ src/info.c
@@ -2769,15 +2769,15 @@
2769 **
2770 ** Edit a check-in. (Check-ins are immutable and do not really change.
2771 ** This page really creates supplemental tags that affect the display
2772 ** of the check-in.)
2773 **
2774 ** Query parmeters:
2775 **
2776 ** rid=INTEGER Record ID of the check-in to edit (REQUIRED)
2777 **
2778 ** POST parameters after pressing "Perview", "Cancel", or "Apply":
2779 **
2780 ** c=TEXT New check-in comment
2781 ** u=TEXT New user name
2782 ** newclr Apply a background color
2783 ** clr=TEXT New background color (only if newclr)
2784
--- src/info.c
+++ src/info.c
@@ -2769,15 +2769,15 @@
2769 **
2770 ** Edit a check-in. (Check-ins are immutable and do not really change.
2771 ** This page really creates supplemental tags that affect the display
2772 ** of the check-in.)
2773 **
2774 ** Query parameters:
2775 **
2776 ** rid=INTEGER Record ID of the check-in to edit (REQUIRED)
2777 **
2778 ** POST parameters after pressing "Preview", "Cancel", or "Apply":
2779 **
2780 ** c=TEXT New check-in comment
2781 ** u=TEXT New user name
2782 ** newclr Apply a background color
2783 ** clr=TEXT New background color (only if newclr)
2784
+34 -28
--- src/login.c
+++ src/login.c
@@ -678,20 +678,18 @@
678678
}else{
679679
zAnonPw = 0;
680680
}
681681
@ <table class="login_out">
682682
@ <tr>
683
- @ <td class="form_label">User ID:</td>
684
- if( anonFlag ){
685
- @ <td><input type="text" id="u" name="u" value="anonymous" size="30"></td>
686
- }else{
687
- @ <td><input type="text" id="u" name="u" value="" size="30" /></td>
688
- }
683
+ @ <td class="form_label" id="userlabel1">User ID:</td>
684
+ @ <td><input type="text" id="u" aria-labelledby="userlabel1" name="u" \
685
+ @ size="30" value="%s(anonFlag?"anonymous":"")"></td>
689686
@ </tr>
690687
@ <tr>
691
- @ <td class="form_label">Password:</td>
692
- @ <td><input type="password" id="p" name="p" value="" size="30" />\
688
+ @ <td class="form_label" id="pswdlabel">Password:</td>
689
+ @ <td><input aria-labelledby="pswdlabel" type="password" id="p" \
690
+ @ name="p" value="" size="30" />\
693691
if( zAnonPw && !noAnon ){
694692
captcha_speakit_button(uSeed, "Speak password for \"anonymous\"");
695693
}
696694
@ </td>
697695
@ </tr>
@@ -750,16 +748,19 @@
750748
if( g.perm.Password ){
751749
@ <hr>
752750
@ <p>Change Password for user <b>%h(g.zLogin)</b>:</p>
753751
form_begin(0, "%R/login");
754752
@ <table>
755
- @ <tr><td class="form_label">Old Password:</td>
756
- @ <td><input type="password" name="p" size="30" /></td></tr>
757
- @ <tr><td class="form_label">New Password:</td>
758
- @ <td><input type="password" name="n1" size="30" /></td></tr>
759
- @ <tr><td class="form_label">Repeat New Password:</td>
760
- @ <td><input type="password" name="n2" size="30" /></td></tr>
753
+ @ <tr><td class="form_label" id="oldpw">Old Password:</td>
754
+ @ <td><input aria-labelledby="oldpw" type="password" name="p" \
755
+ @ size="30"/></td></tr>
756
+ @ <tr><td class="form_label" id="newpw">New Password:</td>
757
+ @ <td><input aria-labelledby="newpw" type="password" name="n1" \
758
+ @ size="30" /></td></tr>
759
+ @ <tr><td class="form_label" id="reppw">Repeat New Password:</td>
760
+ @ <td><input aria-labledby="reppw" type="password" name="n2" \
761
+ @ size="30" /></td></tr>
761762
@ <tr><td></td>
762763
@ <td><input type="submit" value="Change Password" /></td></tr>
763764
@ </table>
764765
@ </form>
765766
}
@@ -1690,57 +1691,62 @@
16901691
@ <input type="hidden" name="g" value="%h(P("g"))" />
16911692
}
16921693
@ <p><input type="hidden" name="captchaseed" value="%u(uSeed)" />
16931694
@ <table class="login_out">
16941695
@ <tr>
1695
- @ <td class="form_label" align="right">User ID:</td>
1696
- @ <td><input type="text" name="u" value="%h(zUserID)" size="30"></td>
1696
+ @ <td class="form_label" align="right" id="uid">User ID:</td>
1697
+ @ <td><input aria-labelledby="uid" type="text" name="u" \
1698
+ @ value="%h(zUserID)" size="30"></td>
16971699
@
16981700
if( iErrLine==1 ){
16991701
@ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
17001702
}
17011703
@ <tr>
1702
- @ <td class="form_label" align="right">Display Name:</td>
1703
- @ <td><input type="text" name="dn" value="%h(zDName)" size="30"></td>
1704
+ @ <td class="form_label" align="right" id="dpyname">Display Name:</td>
1705
+ @ <td><input aria-labelledby="dpyname" type="text" name="dn" \
1706
+ @ value="%h(zDName)" size="30"></td>
17041707
@ </tr>
17051708
if( iErrLine==2 ){
17061709
@ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
17071710
}
17081711
@ </tr>
17091712
@ <tr>
1710
- @ <td class="form_label" align="right">Email Address:</td>
1711
- @ <td><input type="text" name="ea" value="%h(zEAddr)" size="30"></td>
1713
+ @ <td class="form_label" align="right" id="emaddr">Email Address:</td>
1714
+ @ <td><input aria-labelledby="emaddr" type="text" name="ea" \
1715
+ @ value="%h(zEAddr)" size="30"></td>
17121716
@ </tr>
17131717
if( iErrLine==3 ){
17141718
@ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
17151719
}
17161720
if( canDoAlerts ){
17171721
int a = atoi(PD("alerts","1"));
17181722
@ <tr>
1719
- @ <td class="form_label" align="right">Email&nbsp;Alerts?</td>
1720
- @ <td><select size='1' name='alerts'>
1723
+ @ <td class="form_label" align="right" id="emalrt">Email&nbsp;Alerts?</td>
1724
+ @ <td><select aria-labelledby="emalrt" size='1' name='alerts'>
17211725
@ <option value="1" %s(a?"selected":"")>Yes</option>
17221726
@ <option value="0" %s(!a?"selected":"")>No</option>
17231727
@ </select></td></tr>
17241728
}
17251729
@ <tr>
1726
- @ <td class="form_label" align="right">Password:</td>
1727
- @ <td><input type="password" name="p" value="%h(zPasswd)" size="30"></td>
1730
+ @ <td class="form_label" align="right" id="pswd">Password:</td>
1731
+ @ <td><input aria-labelledby="pswd" type="password" name="p" \
1732
+ @ value="%h(zPasswd)" size="30"></td>
17281733
@ <tr>
17291734
if( iErrLine==4 ){
17301735
@ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
17311736
}
17321737
@ <tr>
1733
- @ <td class="form_label" align="right">Confirm:</td>
1734
- @ <td><input type="password" name="cp" value="%h(zConfirm)" size="30"></td>
1738
+ @ <td class="form_label" align="right" id="pwcfrm">Confirm:</td>
1739
+ @ <td><input aria-labelledby="pwcfrm" type="password" name="cp" \
1740
+ @ value="%h(zConfirm)" size="30"></td>
17351741
@ </tr>
17361742
if( iErrLine==5 ){
17371743
@ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
17381744
}
17391745
@ <tr>
1740
- @ <td class="form_label" align="right">Captcha:</td>
1741
- @ <td><input type="text" name="captcha" \
1746
+ @ <td class="form_label" align="right" id="cptcha">Captcha:</td>
1747
+ @ <td><input type="text" name="captcha" aria-labelledby="cptcha" \
17421748
@ value="%h(captchaIsCorrect?zDecoded:"")" size="30">
17431749
captcha_speakit_button(uSeed, "Speak the captcha text");
17441750
@ </td>
17451751
@ </tr>
17461752
if( iErrLine==6 ){
17471753
--- src/login.c
+++ src/login.c
@@ -678,20 +678,18 @@
678 }else{
679 zAnonPw = 0;
680 }
681 @ <table class="login_out">
682 @ <tr>
683 @ <td class="form_label">User ID:</td>
684 if( anonFlag ){
685 @ <td><input type="text" id="u" name="u" value="anonymous" size="30"></td>
686 }else{
687 @ <td><input type="text" id="u" name="u" value="" size="30" /></td>
688 }
689 @ </tr>
690 @ <tr>
691 @ <td class="form_label">Password:</td>
692 @ <td><input type="password" id="p" name="p" value="" size="30" />\
 
693 if( zAnonPw && !noAnon ){
694 captcha_speakit_button(uSeed, "Speak password for \"anonymous\"");
695 }
696 @ </td>
697 @ </tr>
@@ -750,16 +748,19 @@
750 if( g.perm.Password ){
751 @ <hr>
752 @ <p>Change Password for user <b>%h(g.zLogin)</b>:</p>
753 form_begin(0, "%R/login");
754 @ <table>
755 @ <tr><td class="form_label">Old Password:</td>
756 @ <td><input type="password" name="p" size="30" /></td></tr>
757 @ <tr><td class="form_label">New Password:</td>
758 @ <td><input type="password" name="n1" size="30" /></td></tr>
759 @ <tr><td class="form_label">Repeat New Password:</td>
760 @ <td><input type="password" name="n2" size="30" /></td></tr>
 
 
 
761 @ <tr><td></td>
762 @ <td><input type="submit" value="Change Password" /></td></tr>
763 @ </table>
764 @ </form>
765 }
@@ -1690,57 +1691,62 @@
1690 @ <input type="hidden" name="g" value="%h(P("g"))" />
1691 }
1692 @ <p><input type="hidden" name="captchaseed" value="%u(uSeed)" />
1693 @ <table class="login_out">
1694 @ <tr>
1695 @ <td class="form_label" align="right">User ID:</td>
1696 @ <td><input type="text" name="u" value="%h(zUserID)" size="30"></td>
 
1697 @
1698 if( iErrLine==1 ){
1699 @ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
1700 }
1701 @ <tr>
1702 @ <td class="form_label" align="right">Display Name:</td>
1703 @ <td><input type="text" name="dn" value="%h(zDName)" size="30"></td>
 
1704 @ </tr>
1705 if( iErrLine==2 ){
1706 @ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
1707 }
1708 @ </tr>
1709 @ <tr>
1710 @ <td class="form_label" align="right">Email Address:</td>
1711 @ <td><input type="text" name="ea" value="%h(zEAddr)" size="30"></td>
 
1712 @ </tr>
1713 if( iErrLine==3 ){
1714 @ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
1715 }
1716 if( canDoAlerts ){
1717 int a = atoi(PD("alerts","1"));
1718 @ <tr>
1719 @ <td class="form_label" align="right">Email&nbsp;Alerts?</td>
1720 @ <td><select size='1' name='alerts'>
1721 @ <option value="1" %s(a?"selected":"")>Yes</option>
1722 @ <option value="0" %s(!a?"selected":"")>No</option>
1723 @ </select></td></tr>
1724 }
1725 @ <tr>
1726 @ <td class="form_label" align="right">Password:</td>
1727 @ <td><input type="password" name="p" value="%h(zPasswd)" size="30"></td>
 
1728 @ <tr>
1729 if( iErrLine==4 ){
1730 @ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
1731 }
1732 @ <tr>
1733 @ <td class="form_label" align="right">Confirm:</td>
1734 @ <td><input type="password" name="cp" value="%h(zConfirm)" size="30"></td>
 
1735 @ </tr>
1736 if( iErrLine==5 ){
1737 @ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
1738 }
1739 @ <tr>
1740 @ <td class="form_label" align="right">Captcha:</td>
1741 @ <td><input type="text" name="captcha" \
1742 @ value="%h(captchaIsCorrect?zDecoded:"")" size="30">
1743 captcha_speakit_button(uSeed, "Speak the captcha text");
1744 @ </td>
1745 @ </tr>
1746 if( iErrLine==6 ){
1747
--- src/login.c
+++ src/login.c
@@ -678,20 +678,18 @@
678 }else{
679 zAnonPw = 0;
680 }
681 @ <table class="login_out">
682 @ <tr>
683 @ <td class="form_label" id="userlabel1">User ID:</td>
684 @ <td><input type="text" id="u" aria-labelledby="userlabel1" name="u" \
685 @ size="30" value="%s(anonFlag?"anonymous":"")"></td>
 
 
 
686 @ </tr>
687 @ <tr>
688 @ <td class="form_label" id="pswdlabel">Password:</td>
689 @ <td><input aria-labelledby="pswdlabel" type="password" id="p" \
690 @ name="p" value="" size="30" />\
691 if( zAnonPw && !noAnon ){
692 captcha_speakit_button(uSeed, "Speak password for \"anonymous\"");
693 }
694 @ </td>
695 @ </tr>
@@ -750,16 +748,19 @@
748 if( g.perm.Password ){
749 @ <hr>
750 @ <p>Change Password for user <b>%h(g.zLogin)</b>:</p>
751 form_begin(0, "%R/login");
752 @ <table>
753 @ <tr><td class="form_label" id="oldpw">Old Password:</td>
754 @ <td><input aria-labelledby="oldpw" type="password" name="p" \
755 @ size="30"/></td></tr>
756 @ <tr><td class="form_label" id="newpw">New Password:</td>
757 @ <td><input aria-labelledby="newpw" type="password" name="n1" \
758 @ size="30" /></td></tr>
759 @ <tr><td class="form_label" id="reppw">Repeat New Password:</td>
760 @ <td><input aria-labledby="reppw" type="password" name="n2" \
761 @ size="30" /></td></tr>
762 @ <tr><td></td>
763 @ <td><input type="submit" value="Change Password" /></td></tr>
764 @ </table>
765 @ </form>
766 }
@@ -1690,57 +1691,62 @@
1691 @ <input type="hidden" name="g" value="%h(P("g"))" />
1692 }
1693 @ <p><input type="hidden" name="captchaseed" value="%u(uSeed)" />
1694 @ <table class="login_out">
1695 @ <tr>
1696 @ <td class="form_label" align="right" id="uid">User ID:</td>
1697 @ <td><input aria-labelledby="uid" type="text" name="u" \
1698 @ value="%h(zUserID)" size="30"></td>
1699 @
1700 if( iErrLine==1 ){
1701 @ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
1702 }
1703 @ <tr>
1704 @ <td class="form_label" align="right" id="dpyname">Display Name:</td>
1705 @ <td><input aria-labelledby="dpyname" type="text" name="dn" \
1706 @ value="%h(zDName)" size="30"></td>
1707 @ </tr>
1708 if( iErrLine==2 ){
1709 @ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
1710 }
1711 @ </tr>
1712 @ <tr>
1713 @ <td class="form_label" align="right" id="emaddr">Email Address:</td>
1714 @ <td><input aria-labelledby="emaddr" type="text" name="ea" \
1715 @ value="%h(zEAddr)" size="30"></td>
1716 @ </tr>
1717 if( iErrLine==3 ){
1718 @ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
1719 }
1720 if( canDoAlerts ){
1721 int a = atoi(PD("alerts","1"));
1722 @ <tr>
1723 @ <td class="form_label" align="right" id="emalrt">Email&nbsp;Alerts?</td>
1724 @ <td><select aria-labelledby="emalrt" size='1' name='alerts'>
1725 @ <option value="1" %s(a?"selected":"")>Yes</option>
1726 @ <option value="0" %s(!a?"selected":"")>No</option>
1727 @ </select></td></tr>
1728 }
1729 @ <tr>
1730 @ <td class="form_label" align="right" id="pswd">Password:</td>
1731 @ <td><input aria-labelledby="pswd" type="password" name="p" \
1732 @ value="%h(zPasswd)" size="30"></td>
1733 @ <tr>
1734 if( iErrLine==4 ){
1735 @ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
1736 }
1737 @ <tr>
1738 @ <td class="form_label" align="right" id="pwcfrm">Confirm:</td>
1739 @ <td><input aria-labelledby="pwcfrm" type="password" name="cp" \
1740 @ value="%h(zConfirm)" size="30"></td>
1741 @ </tr>
1742 if( iErrLine==5 ){
1743 @ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
1744 }
1745 @ <tr>
1746 @ <td class="form_label" align="right" id="cptcha">Captcha:</td>
1747 @ <td><input type="text" name="captcha" aria-labelledby="cptcha" \
1748 @ value="%h(captchaIsCorrect?zDecoded:"")" size="30">
1749 captcha_speakit_button(uSeed, "Speak the captcha text");
1750 @ </td>
1751 @ </tr>
1752 if( iErrLine==6 ){
1753
+32 -25
--- src/setup.c
+++ src/setup.c
@@ -201,16 +201,17 @@
201201
admin_log("Set option [%q] to [%q].",
202202
zVar, iQ ? "on" : "off");
203203
iVal = iQ;
204204
}
205205
}
206
- @ <label><input type="checkbox" name="%s(zQParm)"
206
+ @ <label><input type="checkbox" name="%s(zQParm)" \
207
+ @ aria-label="%s(zLabel[0]?zLabel:zQParm)" \
207208
if( iVal ){
208
- @ checked="checked"
209
+ @ checked="checked" \
209210
}
210211
if( disabled ){
211
- @ disabled="disabled"
212
+ @ disabled="disabled" \
212213
}
213214
@ /> <b>%s(zLabel)</b></label>
214215
}
215216
216217
/*
@@ -232,12 +233,12 @@
232233
db_set(zVar, zQ, 0);
233234
admin_log("Set entry_attribute %Q to: %.*s%s",
234235
zVar, 20, zQ, (nZQ>20 ? "..." : ""));
235236
zVal = zQ;
236237
}
237
- @ <input type="text" id="%s(zQParm)" name="%s(zQParm)" value="%h(zVal)" \
238
- @ size="%d(width)" \
238
+ @ <input aria-label="%h(zLabel[0]?zLabel:zQParm)" type="text" \
239
+ @ id="%s(zQParm)" name="%s(zQParm)" value="%h(zVal)" size="%d(width)" \
239240
if( disabled ){
240241
@ disabled="disabled" \
241242
}
242243
@ /> <b>%s(zLabel)</b>
243244
}
@@ -263,16 +264,17 @@
263264
admin_log("Set textarea_attribute %Q to: %.*s%s",
264265
zVar, 20, zQ, (nZQ>20 ? "..." : ""));
265266
z = zQ;
266267
}
267268
if( rows>0 && cols>0 ){
268
- @ <textarea id="id%s(zQP)" name="%s(zQP)" rows="%d(rows)"
269
+ @ <textarea id="id%s(zQP)" name="%s(zQP)" rows="%d(rows)" \
270
+ @ aria-label="%h(zLabel[0]?zLabel:zQP)" \
269271
if( disabled ){
270
- @ disabled="disabled"
272
+ @ disabled="disabled" \
271273
}
272274
@ cols="%d(cols)">%h(z)</textarea>
273
- if( zLabel && *zLabel ){
275
+ if( *zLabel ){
274276
@ <span class="textareaLabel">%s(zLabel)</span>
275277
}
276278
}
277279
return z;
278280
}
@@ -297,11 +299,11 @@
297299
db_set(zVar, zQ, 0);
298300
admin_log("Set multiple_choice_attribute %Q to: %.*s%s",
299301
zVar, 20, zQ, (nZQ>20 ? "..." : ""));
300302
z = zQ;
301303
}
302
- @ <select size="1" name="%s(zQP)" id="id%s(zQP)">
304
+ @ <select aria-label="%h(zLabel)" size="1" name="%s(zQP)" id="id%s(zQP)">
303305
for(i=0; i<nChoice*2; i+=2){
304306
const char *zSel = fossil_strcmp(azChoice[i],z)==0 ? " selected" : "";
305307
@ <option value="%h(azChoice[i])"%s(zSel)>%h(azChoice[i+1])</option>
306308
}
307309
@ </select> <b>%h(zLabel)</b>
@@ -398,11 +400,11 @@
398400
@ <hr />
399401
onoff_attribute("Allow HTTP_AUTHENTICATION authentication",
400402
"http_authentication_ok", "http_authentication_ok", 0, 0);
401403
@ <p>When enabled, allow the use of the HTTP_AUTHENTICATION environment
402404
@ variable or the "Authentication:" HTTP header to find the username and
403
- @ password. This is another way of supporting Basic Authenitication.
405
+ @ password. This is another way of supporting Basic Authentication.
404406
@ (Property: "http_authentication_ok")
405407
@ </p>
406408
@
407409
@ <hr />
408410
entry_attribute("Login expiration time", 6, "cookie-expire", "cex",
@@ -606,25 +608,30 @@
606608
@
607609
@ <form action="%s(g.zTop)/setup_login_group" method="post"><div>
608610
login_insert_csrf_secret();
609611
@ <blockquote><table border="0">
610612
@
611
- @ <tr><th align="right">Repository filename in group to join:</th>
612
- @ <td width="5"></td><td>
613
- @ <input type="text" size="50" value="%h(zRepo)" name="repo"></td></tr>
614
- @
615
- @ <tr><th align="right">Login on the above repo:</th>
616
- @ <td width="5"></td><td>
617
- @ <input type="text" size="20" value="%h(zLogin)" name="login"></td></tr>
618
- @
619
- @ <tr><th align="right">Password:</th>
620
- @ <td width="5"></td><td>
621
- @ <input type="password" size="20" name="pw"></td></tr>
622
- @
623
- @ <tr><th align="right">Name of login-group:</th>
624
- @ <td width="5"></td><td>
625
- @ <input type="text" size="30" value="%h(zNewName)" name="newname">
613
+ @ <tr><th align="right" id="rfigtj">Repository filename \
614
+ @ in group to join:</th>
615
+ @ <td width="5"></td><td>
616
+ @ <input aria-labelledby="rfigtj" type="text" size="50" \
617
+ @ value="%h(zRepo)" name="repo"></td></tr>
618
+ @
619
+ @ <tr><th align="right" id="lotar">Login on the above repo:</th>
620
+ @ <td width="5"></td><td>
621
+ @ <input aria-labelledby="lotar" type="text" size="20" \
622
+ @ value="%h(zLogin)" name="login"></td></tr>
623
+ @
624
+ @ <tr><th align="right" id="lgpw">Password:</th>
625
+ @ <td width="5"></td><td>
626
+ @ <input aria-labelledby="lgpw" type="password" size="20" name="pw">\
627
+ @ </td></tr>
628
+ @
629
+ @ <tr><th align="right" id="nolg">Name of login-group:</th>
630
+ @ <td width="5"></td><td>
631
+ @ <input aria-labelledby="nolg" type="text" size="30" \
632
+ @ value="%h(zNewName)" name="newname">
626633
@ (only used if creating a new login-group).</td></tr>
627634
@
628635
@ <tr><td colspan="3" align="center">
629636
@ <input type="submit" value="Join" name="join"></td></tr>
630637
@ </table></blockquote></div></form>
631638
--- src/setup.c
+++ src/setup.c
@@ -201,16 +201,17 @@
201 admin_log("Set option [%q] to [%q].",
202 zVar, iQ ? "on" : "off");
203 iVal = iQ;
204 }
205 }
206 @ <label><input type="checkbox" name="%s(zQParm)"
 
207 if( iVal ){
208 @ checked="checked"
209 }
210 if( disabled ){
211 @ disabled="disabled"
212 }
213 @ /> <b>%s(zLabel)</b></label>
214 }
215
216 /*
@@ -232,12 +233,12 @@
232 db_set(zVar, zQ, 0);
233 admin_log("Set entry_attribute %Q to: %.*s%s",
234 zVar, 20, zQ, (nZQ>20 ? "..." : ""));
235 zVal = zQ;
236 }
237 @ <input type="text" id="%s(zQParm)" name="%s(zQParm)" value="%h(zVal)" \
238 @ size="%d(width)" \
239 if( disabled ){
240 @ disabled="disabled" \
241 }
242 @ /> <b>%s(zLabel)</b>
243 }
@@ -263,16 +264,17 @@
263 admin_log("Set textarea_attribute %Q to: %.*s%s",
264 zVar, 20, zQ, (nZQ>20 ? "..." : ""));
265 z = zQ;
266 }
267 if( rows>0 && cols>0 ){
268 @ <textarea id="id%s(zQP)" name="%s(zQP)" rows="%d(rows)"
 
269 if( disabled ){
270 @ disabled="disabled"
271 }
272 @ cols="%d(cols)">%h(z)</textarea>
273 if( zLabel && *zLabel ){
274 @ <span class="textareaLabel">%s(zLabel)</span>
275 }
276 }
277 return z;
278 }
@@ -297,11 +299,11 @@
297 db_set(zVar, zQ, 0);
298 admin_log("Set multiple_choice_attribute %Q to: %.*s%s",
299 zVar, 20, zQ, (nZQ>20 ? "..." : ""));
300 z = zQ;
301 }
302 @ <select size="1" name="%s(zQP)" id="id%s(zQP)">
303 for(i=0; i<nChoice*2; i+=2){
304 const char *zSel = fossil_strcmp(azChoice[i],z)==0 ? " selected" : "";
305 @ <option value="%h(azChoice[i])"%s(zSel)>%h(azChoice[i+1])</option>
306 }
307 @ </select> <b>%h(zLabel)</b>
@@ -398,11 +400,11 @@
398 @ <hr />
399 onoff_attribute("Allow HTTP_AUTHENTICATION authentication",
400 "http_authentication_ok", "http_authentication_ok", 0, 0);
401 @ <p>When enabled, allow the use of the HTTP_AUTHENTICATION environment
402 @ variable or the "Authentication:" HTTP header to find the username and
403 @ password. This is another way of supporting Basic Authenitication.
404 @ (Property: "http_authentication_ok")
405 @ </p>
406 @
407 @ <hr />
408 entry_attribute("Login expiration time", 6, "cookie-expire", "cex",
@@ -606,25 +608,30 @@
606 @
607 @ <form action="%s(g.zTop)/setup_login_group" method="post"><div>
608 login_insert_csrf_secret();
609 @ <blockquote><table border="0">
610 @
611 @ <tr><th align="right">Repository filename in group to join:</th>
612 @ <td width="5"></td><td>
613 @ <input type="text" size="50" value="%h(zRepo)" name="repo"></td></tr>
614 @
615 @ <tr><th align="right">Login on the above repo:</th>
616 @ <td width="5"></td><td>
617 @ <input type="text" size="20" value="%h(zLogin)" name="login"></td></tr>
618 @
619 @ <tr><th align="right">Password:</th>
620 @ <td width="5"></td><td>
621 @ <input type="password" size="20" name="pw"></td></tr>
622 @
623 @ <tr><th align="right">Name of login-group:</th>
624 @ <td width="5"></td><td>
625 @ <input type="text" size="30" value="%h(zNewName)" name="newname">
 
 
 
 
 
626 @ (only used if creating a new login-group).</td></tr>
627 @
628 @ <tr><td colspan="3" align="center">
629 @ <input type="submit" value="Join" name="join"></td></tr>
630 @ </table></blockquote></div></form>
631
--- src/setup.c
+++ src/setup.c
@@ -201,16 +201,17 @@
201 admin_log("Set option [%q] to [%q].",
202 zVar, iQ ? "on" : "off");
203 iVal = iQ;
204 }
205 }
206 @ <label><input type="checkbox" name="%s(zQParm)" \
207 @ aria-label="%s(zLabel[0]?zLabel:zQParm)" \
208 if( iVal ){
209 @ checked="checked" \
210 }
211 if( disabled ){
212 @ disabled="disabled" \
213 }
214 @ /> <b>%s(zLabel)</b></label>
215 }
216
217 /*
@@ -232,12 +233,12 @@
233 db_set(zVar, zQ, 0);
234 admin_log("Set entry_attribute %Q to: %.*s%s",
235 zVar, 20, zQ, (nZQ>20 ? "..." : ""));
236 zVal = zQ;
237 }
238 @ <input aria-label="%h(zLabel[0]?zLabel:zQParm)" type="text" \
239 @ id="%s(zQParm)" name="%s(zQParm)" value="%h(zVal)" size="%d(width)" \
240 if( disabled ){
241 @ disabled="disabled" \
242 }
243 @ /> <b>%s(zLabel)</b>
244 }
@@ -263,16 +264,17 @@
264 admin_log("Set textarea_attribute %Q to: %.*s%s",
265 zVar, 20, zQ, (nZQ>20 ? "..." : ""));
266 z = zQ;
267 }
268 if( rows>0 && cols>0 ){
269 @ <textarea id="id%s(zQP)" name="%s(zQP)" rows="%d(rows)" \
270 @ aria-label="%h(zLabel[0]?zLabel:zQP)" \
271 if( disabled ){
272 @ disabled="disabled" \
273 }
274 @ cols="%d(cols)">%h(z)</textarea>
275 if( *zLabel ){
276 @ <span class="textareaLabel">%s(zLabel)</span>
277 }
278 }
279 return z;
280 }
@@ -297,11 +299,11 @@
299 db_set(zVar, zQ, 0);
300 admin_log("Set multiple_choice_attribute %Q to: %.*s%s",
301 zVar, 20, zQ, (nZQ>20 ? "..." : ""));
302 z = zQ;
303 }
304 @ <select aria-label="%h(zLabel)" size="1" name="%s(zQP)" id="id%s(zQP)">
305 for(i=0; i<nChoice*2; i+=2){
306 const char *zSel = fossil_strcmp(azChoice[i],z)==0 ? " selected" : "";
307 @ <option value="%h(azChoice[i])"%s(zSel)>%h(azChoice[i+1])</option>
308 }
309 @ </select> <b>%h(zLabel)</b>
@@ -398,11 +400,11 @@
400 @ <hr />
401 onoff_attribute("Allow HTTP_AUTHENTICATION authentication",
402 "http_authentication_ok", "http_authentication_ok", 0, 0);
403 @ <p>When enabled, allow the use of the HTTP_AUTHENTICATION environment
404 @ variable or the "Authentication:" HTTP header to find the username and
405 @ password. This is another way of supporting Basic Authentication.
406 @ (Property: "http_authentication_ok")
407 @ </p>
408 @
409 @ <hr />
410 entry_attribute("Login expiration time", 6, "cookie-expire", "cex",
@@ -606,25 +608,30 @@
608 @
609 @ <form action="%s(g.zTop)/setup_login_group" method="post"><div>
610 login_insert_csrf_secret();
611 @ <blockquote><table border="0">
612 @
613 @ <tr><th align="right" id="rfigtj">Repository filename \
614 @ in group to join:</th>
615 @ <td width="5"></td><td>
616 @ <input aria-labelledby="rfigtj" type="text" size="50" \
617 @ value="%h(zRepo)" name="repo"></td></tr>
618 @
619 @ <tr><th align="right" id="lotar">Login on the above repo:</th>
620 @ <td width="5"></td><td>
621 @ <input aria-labelledby="lotar" type="text" size="20" \
622 @ value="%h(zLogin)" name="login"></td></tr>
623 @
624 @ <tr><th align="right" id="lgpw">Password:</th>
625 @ <td width="5"></td><td>
626 @ <input aria-labelledby="lgpw" type="password" size="20" name="pw">\
627 @ </td></tr>
628 @
629 @ <tr><th align="right" id="nolg">Name of login-group:</th>
630 @ <td width="5"></td><td>
631 @ <input aria-labelledby="nolg" type="text" size="30" \
632 @ value="%h(zNewName)" name="newname">
633 @ (only used if creating a new login-group).</td></tr>
634 @
635 @ <tr><td colspan="3" align="center">
636 @ <input type="submit" value="Join" name="join"></td></tr>
637 @ </table></blockquote></div></form>
638
+16 -12
--- src/setupuser.c
+++ src/setupuser.c
@@ -534,24 +534,27 @@
534534
@ <input type="hidden" name="pw" value="*">
535535
}
536536
@ <input type="hidden" name="referer" value="%h(cgi_referer("setup_ulist"))">
537537
@ <table width="100%%">
538538
@ <tr>
539
- @ <td class="usetupEditLabel">User ID:</td>
539
+ @ <td class="usetupEditLabel" id="suuid">User ID:</td>
540540
if( uid ){
541
- @ <td>%d(uid) <input type="hidden" name="id" value="%d(uid)" />\
541
+ @ <td>%d(uid) <input aria-labelledby="suuid" type="hidden" \
542
+ @ name="id" value="%d(uid)"/>\
542543
@ </td>
543544
}else{
544
- @ <td>(new user)<input type="hidden" name="id" value="0" /></td>
545
+ @ <td>(new user)<input aria-labelledby="suuid" type="hidden" name="id" \
546
+ @ value="0" /></td>
545547
}
546548
@ </tr>
547549
@ <tr>
548
- @ <td class="usetupEditLabel">Login:</td>
550
+ @ <td class="usetupEditLabel" id="sulgn">Login:</td>
549551
if( login_is_special(zLogin) ){
550552
@ <td><b>%h(zLogin)</b></td>
551553
}else{
552
- @ <td><input type="text" name="login" value="%h(zLogin)" />\
554
+ @ <td><input aria-labelledby="sulgn" type="text" name="login" \
555
+ @ value="%h(zLogin)" />
553556
if( alert_tables_exist() ){
554557
int sid;
555558
sid = db_int(0, "SELECT subscriberId FROM subscriber"
556559
" WHERE suname=%Q", zLogin);
557560
if( sid>0 ){
@@ -559,12 +562,13 @@
559562
@ (subscription info for %h(zLogin))</a>\
560563
}
561564
}
562565
@ </td></tr>
563566
@ <tr>
564
- @ <td class="usetupEditLabel">Contact&nbsp;Info:</td>
565
- @ <td><textarea name="info" cols="40" rows="2">%h(zInfo)</textarea></td>
567
+ @ <td class="usetupEditLabel" id="sucnfo">Contact&nbsp;Info:</td>
568
+ @ <td><textarea aria-labelledby="sucnfo" name="info" cols="40" \
569
+ @ rows="2">%h(zInfo)</textarea></td>
566570
}
567571
@ </tr>
568572
@ <tr>
569573
@ <td class="usetupEditLabel">Capabilities:</td>
570574
@ <td width="100%%">
@@ -653,19 +657,19 @@
653657
@ <a href="%R/setup_ucap_list">(key)</a>
654658
@ </td>
655659
@ </tr>
656660
if( !login_is_special(zLogin) ){
657661
@ <tr>
658
- @ <td align="right">Password:</td>
662
+ @ <td align="right" id="supw">Password:</td>
659663
if( zPw[0] ){
660664
/* Obscure the password for all users */
661
- @ <td><input type="password" autocomplete="off" name="pw"\
662
- @ value="**********" /></td>
665
+ @ <td><input aria-labelledby="supw" type="password" autocomplete="off" \
666
+ @ name="pw" value="**********" /></td>
663667
}else{
664668
/* Show an empty password as an empty input field */
665
- @ <td><input type="password" autocomplete="off" name="pw"\
666
- @ value="" /></td>
669
+ @ <td><input aria-labelledby="supw" type="password" name="pw" \
670
+ @ autocomplete="off" value="" /></td>
667671
}
668672
@ </tr>
669673
}
670674
zGroup = login_group_name();
671675
if( zGroup ){
672676
--- src/setupuser.c
+++ src/setupuser.c
@@ -534,24 +534,27 @@
534 @ <input type="hidden" name="pw" value="*">
535 }
536 @ <input type="hidden" name="referer" value="%h(cgi_referer("setup_ulist"))">
537 @ <table width="100%%">
538 @ <tr>
539 @ <td class="usetupEditLabel">User ID:</td>
540 if( uid ){
541 @ <td>%d(uid) <input type="hidden" name="id" value="%d(uid)" />\
 
542 @ </td>
543 }else{
544 @ <td>(new user)<input type="hidden" name="id" value="0" /></td>
 
545 }
546 @ </tr>
547 @ <tr>
548 @ <td class="usetupEditLabel">Login:</td>
549 if( login_is_special(zLogin) ){
550 @ <td><b>%h(zLogin)</b></td>
551 }else{
552 @ <td><input type="text" name="login" value="%h(zLogin)" />\
 
553 if( alert_tables_exist() ){
554 int sid;
555 sid = db_int(0, "SELECT subscriberId FROM subscriber"
556 " WHERE suname=%Q", zLogin);
557 if( sid>0 ){
@@ -559,12 +562,13 @@
559 @ (subscription info for %h(zLogin))</a>\
560 }
561 }
562 @ </td></tr>
563 @ <tr>
564 @ <td class="usetupEditLabel">Contact&nbsp;Info:</td>
565 @ <td><textarea name="info" cols="40" rows="2">%h(zInfo)</textarea></td>
 
566 }
567 @ </tr>
568 @ <tr>
569 @ <td class="usetupEditLabel">Capabilities:</td>
570 @ <td width="100%%">
@@ -653,19 +657,19 @@
653 @ <a href="%R/setup_ucap_list">(key)</a>
654 @ </td>
655 @ </tr>
656 if( !login_is_special(zLogin) ){
657 @ <tr>
658 @ <td align="right">Password:</td>
659 if( zPw[0] ){
660 /* Obscure the password for all users */
661 @ <td><input type="password" autocomplete="off" name="pw"\
662 @ value="**********" /></td>
663 }else{
664 /* Show an empty password as an empty input field */
665 @ <td><input type="password" autocomplete="off" name="pw"\
666 @ value="" /></td>
667 }
668 @ </tr>
669 }
670 zGroup = login_group_name();
671 if( zGroup ){
672
--- src/setupuser.c
+++ src/setupuser.c
@@ -534,24 +534,27 @@
534 @ <input type="hidden" name="pw" value="*">
535 }
536 @ <input type="hidden" name="referer" value="%h(cgi_referer("setup_ulist"))">
537 @ <table width="100%%">
538 @ <tr>
539 @ <td class="usetupEditLabel" id="suuid">User ID:</td>
540 if( uid ){
541 @ <td>%d(uid) <input aria-labelledby="suuid" type="hidden" \
542 @ name="id" value="%d(uid)"/>\
543 @ </td>
544 }else{
545 @ <td>(new user)<input aria-labelledby="suuid" type="hidden" name="id" \
546 @ value="0" /></td>
547 }
548 @ </tr>
549 @ <tr>
550 @ <td class="usetupEditLabel" id="sulgn">Login:</td>
551 if( login_is_special(zLogin) ){
552 @ <td><b>%h(zLogin)</b></td>
553 }else{
554 @ <td><input aria-labelledby="sulgn" type="text" name="login" \
555 @ value="%h(zLogin)" />
556 if( alert_tables_exist() ){
557 int sid;
558 sid = db_int(0, "SELECT subscriberId FROM subscriber"
559 " WHERE suname=%Q", zLogin);
560 if( sid>0 ){
@@ -559,12 +562,13 @@
562 @ (subscription info for %h(zLogin))</a>\
563 }
564 }
565 @ </td></tr>
566 @ <tr>
567 @ <td class="usetupEditLabel" id="sucnfo">Contact&nbsp;Info:</td>
568 @ <td><textarea aria-labelledby="sucnfo" name="info" cols="40" \
569 @ rows="2">%h(zInfo)</textarea></td>
570 }
571 @ </tr>
572 @ <tr>
573 @ <td class="usetupEditLabel">Capabilities:</td>
574 @ <td width="100%%">
@@ -653,19 +657,19 @@
657 @ <a href="%R/setup_ucap_list">(key)</a>
658 @ </td>
659 @ </tr>
660 if( !login_is_special(zLogin) ){
661 @ <tr>
662 @ <td align="right" id="supw">Password:</td>
663 if( zPw[0] ){
664 /* Obscure the password for all users */
665 @ <td><input aria-labelledby="supw" type="password" autocomplete="off" \
666 @ name="pw" value="**********" /></td>
667 }else{
668 /* Show an empty password as an empty input field */
669 @ <td><input aria-labelledby="supw" type="password" name="pw" \
670 @ autocomplete="off" value="" /></td>
671 }
672 @ </tr>
673 }
674 zGroup = login_group_name();
675 if( zGroup ){
676
+1 -1
--- src/skins.c
+++ src/skins.c
@@ -1117,11 +1117,11 @@
11171117
if( !g.perm.Admin ){
11181118
@ <p>Only administrators are allowed to publish draft skins. Contact
11191119
@ an administrator to get this "draft%d(iSkin)" skin published.</p>
11201120
}else{
11211121
@ <p>When the draft%d(iSkin) skin is ready for production use,
1122
- @ make it the default scan by clicking the acknowledgements and
1122
+ @ make it the default skin by clicking the acknowledgements and
11231123
@ pressing the button below:</p>
11241124
@
11251125
@ <form method='POST' action='%R/setup_skin#step7'>
11261126
@ <p class='skinInput'>
11271127
@ <input type='hidden' name='sk' value='%d(iSkin)'>
11281128
--- src/skins.c
+++ src/skins.c
@@ -1117,11 +1117,11 @@
1117 if( !g.perm.Admin ){
1118 @ <p>Only administrators are allowed to publish draft skins. Contact
1119 @ an administrator to get this "draft%d(iSkin)" skin published.</p>
1120 }else{
1121 @ <p>When the draft%d(iSkin) skin is ready for production use,
1122 @ make it the default scan by clicking the acknowledgements and
1123 @ pressing the button below:</p>
1124 @
1125 @ <form method='POST' action='%R/setup_skin#step7'>
1126 @ <p class='skinInput'>
1127 @ <input type='hidden' name='sk' value='%d(iSkin)'>
1128
--- src/skins.c
+++ src/skins.c
@@ -1117,11 +1117,11 @@
1117 if( !g.perm.Admin ){
1118 @ <p>Only administrators are allowed to publish draft skins. Contact
1119 @ an administrator to get this "draft%d(iSkin)" skin published.</p>
1120 }else{
1121 @ <p>When the draft%d(iSkin) skin is ready for production use,
1122 @ make it the default skin by clicking the acknowledgements and
1123 @ pressing the button below:</p>
1124 @
1125 @ <form method='POST' action='%R/setup_skin#step7'>
1126 @ <p class='skinInput'>
1127 @ <input type='hidden' name='sk' value='%d(iSkin)'>
1128
+2 -2
--- www/cgi.wiki
+++ www/cgi.wiki
@@ -14,12 +14,12 @@
1414
script]. CGI is the technique that the three
1515
[./selfhost.wiki|self-hosting Fossil repositories] all use.
1616
1717
Setting up a Fossil server using CGI is mostly about writing a short
1818
script (usually just 2 lines line) in the cgi-bin folder of an ordinary
19
-web-browser. But there are a lot of extra options that can be added
20
-to this script, to customize the configuration. This article descripts
19
+web-server. But there are a lot of extra options that can be added
20
+to this script, to customize the configuration. This article describes
2121
those options.
2222
2323
<h1>CGI Script Options</h1>
2424
2525
The CGI script used to launch a Fossil server will usually look something
2626
--- www/cgi.wiki
+++ www/cgi.wiki
@@ -14,12 +14,12 @@
14 script]. CGI is the technique that the three
15 [./selfhost.wiki|self-hosting Fossil repositories] all use.
16
17 Setting up a Fossil server using CGI is mostly about writing a short
18 script (usually just 2 lines line) in the cgi-bin folder of an ordinary
19 web-browser. But there are a lot of extra options that can be added
20 to this script, to customize the configuration. This article descripts
21 those options.
22
23 <h1>CGI Script Options</h1>
24
25 The CGI script used to launch a Fossil server will usually look something
26
--- www/cgi.wiki
+++ www/cgi.wiki
@@ -14,12 +14,12 @@
14 script]. CGI is the technique that the three
15 [./selfhost.wiki|self-hosting Fossil repositories] all use.
16
17 Setting up a Fossil server using CGI is mostly about writing a short
18 script (usually just 2 lines line) in the cgi-bin folder of an ordinary
19 web-server. But there are a lot of extra options that can be added
20 to this script, to customize the configuration. This article describes
21 those options.
22
23 <h1>CGI Script Options</h1>
24
25 The CGI script used to launch a Fossil server will usually look something
26

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button