WP Accessibility - Version 1.2.4.1

Version Description

Download this release

Release Info

Developer joedolson
Plugin Icon 128x128 WP Accessibility
Version 1.2.4.1
Comparing to
See all releases

Code changes from version 1.2.3 to 1.2.4.1

diagnostic-head.css ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Head attributes */
2
+ body:before { content: "Currently viewing with diagnostic CSS enabled."; display: block; position: relative; width: 100%; text-align: center; border-bottom: 4px solid; border-top: 4px solid; background: #fcfcfc; color: #933; padding: 5px 0; }
3
+ /*
4
+ dir attribute
5
+ */
6
+ /* If used, dir attribute only accepts 2 possible values */
7
+ [dir]:not([dir="rtl"]):not([dir="ltr"]) {
8
+ background-color: hotpink !important;
9
+ }
10
+ [dir="rtl"]:before,
11
+ [dir="ltr"]:before {
12
+ content: "dir: " attr(dir);
13
+ display: block;
14
+ color: darkgreen !important;
15
+ background-color: lightyellow !important;
16
+ }
17
+
18
+
19
+ /*
20
+ title element: not empty, unique and in head
21
+ */
22
+ head, title {
23
+ display: block;
24
+ }
25
+ title:before {
26
+ content: 'TITLE';
27
+ margin: 0 0.4em;
28
+ padding: 0 0.4em;
29
+ color: black;
30
+ background-color: #D0D0D0;
31
+ border-radius: 3px;
32
+ }
33
+ head > title {
34
+ margin: 0;
35
+ padding: 0.2em 0;
36
+ border-bottom: 1px solid #CCC;
37
+ color: #444;
38
+ background-color: white;
39
+ }
40
+ /* empty? */
41
+ title:empty:after {
42
+ content: "ERROR: title element is empty and it shouldn't be";
43
+ color: #C22;
44
+ background-color: white;
45
+ }
46
+ title:empty:before,
47
+ title ~ title:before { /* not unique? */
48
+ color: white;
49
+ background-color: #C22;
50
+ }
51
+ title ~ title:after {
52
+ content: ' (ERROR: why is there more than one title element?)';
53
+ }
54
+ title ~ title {
55
+ color: #C22;
56
+ background-color: white;
57
+ }
58
+
59
+
60
+ /*
61
+ Meta refresh?
62
+ @source CSS selector from Opquast Checklist Accessibility First step https://checklists.opquast.com/en/accessibilityfirststep/
63
+ @reference Technique for WCAG 2.0 F40: Failure (...) due to using meta redirect with a time limit - http://www.w3.org/TR/WCAG-TECHS/F40.html
64
+ */
65
+ meta[http-equiv=refresh]:before {
66
+ content: 'meta refresh detected';
67
+ }
68
+ meta[http-equiv=refresh] {
69
+ display: block;
70
+ padding: 0.4em;
71
+ font-weight: bold;
72
+ color: white;
73
+ background-color: darkred;
74
+ }
75
+
76
+
77
+ /*
78
+ Lang attribute on html element
79
+ @reference Technique for WCAG 2.0 H57: Using language attributes on the html element - http://www.w3.org/TR/WCAG-TECHS/F40.html
80
+ */
81
+ html[lang] {
82
+ display: block;
83
+ margin-top: 0.4em;
84
+ }
85
+ html:not([lang]):before {
86
+ content: 'no lang attribute detected';
87
+ margin: 0.4em;
88
+ padding: 0 0.4em;
89
+ color: white;
90
+ background-color: darkred;
91
+ border-radius: 3px;
92
+ }
93
+
94
+ html[lang]:before {
95
+ content: 'Default page language: ' attr(lang);
96
+ margin: 0.4em;
97
+ color: #444;
98
+ background-color: white;
99
+ }
diagnostic.css ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* content styles */
2
+ applet:hover:after, basefont:hover:after, center:hover:after, dir:hover:after, font:hover:after, isindex:hover:after, menu:hover:after, strike:hover:after, s:hover:after, u:hover:after, *[background]:hover:after, *[bgcolor]:hover:after, *[clear]:hover:after, *[color]:hover:after, *[compact]:hover:after, *[noshade]:hover:after, *[nowrap]:hover:after, *[size]:hover:after, *[start]:hover:after, *[bottommargin]:hover:after, *[leftmargin]:hover:after, *[rightmargin]:hover:after, *[topmargin]:hover:after, *[marginheight]:hover:after, *[marginwidth]:hover:after, *[alink]:hover:after, *[link]:hover:after, *[text]:hover:after, *[vlink]:hover:after, *[align]:hover:after, *[valign]:hover:after, *[hspace]:hover:after, *[vspace]:hover:after, *[height]:hover:after, *[width]:hover:after, ul[type]:hover:after, ol[type]:hover:after, li[type]:hover:after, iframe:not([title]):hover:after,div[role="img"]:not([aria-label]):hover:after, a[href=""]:hover:after, a[href="#"]:hover:after, a:not([href]):hover:after, a[href*=javascript\:]:hover:after, a[onclick]:hover:after, a[href=""]:focus:after, a[href="#"]:focus:after, a:not([href]):focus:after, a[href*=javascript\:]:focus:after, a[onclick]:focus:after, fieldset > :not(legend):first-child:after, fieldset > legend:not(:first-child):after,label:not([for]):hover:after, *[accesskey]:hover:after, th:empty:hover:after, table > tr:only-child:after, table > tbody > tr:only-child:after, table[align]:after, table[bgcolor]:after, table[outline]:after, table[cellpadding]:after, table[cellspacing]:after, table[width]:after, td[width]:after, td[valign]:after {
3
+ position: absolute;
4
+ display: block;
5
+ width: 200px;
6
+ background: #fcfcfc;
7
+ color: #333;
8
+ outline: 2px solid;
9
+ padding: 5px;
10
+ }
11
+ /* content styles */
12
+ applet:hover:after, basefont:hover:after, center:hover:after, dir:hover:after, font:hover:after, isindex:hover:after, menu:hover:after, strike:hover:after, s:hover:after, u:hover:after, *[background]:hover:after, *[bgcolor]:hover:after, *[clear]:hover:after, *[color]:hover:after, *[compact]:hover:after, *[noshade]:hover:after, *[nowrap]:hover:after, *[size]:hover:after, *[start]:hover:after, *[bottommargin]:hover:after, *[leftmargin]:hover:after, *[rightmargin]:hover:after, *[topmargin]:hover:after, *[marginheight]:hover:after, *[marginwidth]:hover:after, *[alink]:hover:after, *[link]:hover:after, *[text]:hover:after, *[vlink]:hover:after, *[align]:hover:after, *[valign]:hover:after, *[hspace]:hover:after, *[vspace]:hover:after, *[height]:hover:after, *[width]:hover:after, ul[type]:hover:after, ol[type]:hover:after, li[type]:hover:after, iframe:not([title]):hover:after {
13
+ position: absolute; background: #fff; padding: 3px; outline: 2px solid; color: #333;
14
+ }
15
+ /* Deprecated Elements - cannot be overridden by user styles */
16
+ applet, basefont, center, dir, font, isindex, menu, s, strike, u {
17
+ outline: 2px dotted red !important;
18
+ }
19
+
20
+ applet:hover:after { content: " <applet> is a deprecated HTML element";}
21
+ basefont:hover:after { content: " <basefont> is a deprecated HTML element"; }
22
+ center:hover:after { content: " <center> is a deprecated HTML element"; }
23
+ dir:hover:after { content: " <dir> is a deprecated HTML element"; }
24
+ font:hover:after { content: " <font> is a deprecated HTML element"; }
25
+ isindex:hover:after { content: " <isindex> is a deprecated HTML element"; }
26
+ menu:hover:after { content: " <menu> is a deprecated HTML element"; }
27
+ strike:hover:after { content: " <strike> is a deprecated HTML element"; }
28
+ s:hover:after { content: " <s> is a deprecated HTML element"; }
29
+ u:hover:after { content: " <u> is a deprecated HTML element"; }
30
+
31
+ /* Deprecated Attributes - cannot be overridden by user styles */
32
+ *[background], *[bgcolor], *[clear], *[color], *[compact], *[noshade], *[nowrap], *[size], *[start], *[bottommargin], *[leftmargin], *[rightmargin], *[topmargin], *[marginheight], *[marginwidth], *[alink], *[link], *[text], *[vlink], *[align], *[valign], *[hspace], *[vspace], *[height], *[width], ul[type], ol[type], li[type] {
33
+ outline: 2px solid red !important;
34
+ }
35
+
36
+ *[background]:hover:after { content: " background is a deprecated HTML attribute"; }
37
+ *[bgcolor]:hover:after { content: " bgcolor is a deprecated HTML attribute"; }
38
+ *[clear]:hover:after { content: " clear is a deprecated HTML attribute"; }
39
+ *[color]:hover:after { content: " color is a deprecated HTML attribute"; }
40
+ *[compact]:hover:after { content: " compact is a deprecated HTML attribute"; }
41
+ *[noshade]:hover:after { content: " noshade is a deprecated HTML attribute"; }
42
+ *[nowrap]:hover:after { content: " nowrap is a deprecated HTML attribute"; }
43
+ *[size]:hover:after { content: " size is a deprecated HTML attribute"; }
44
+ *[start]:hover:after { content: " start is a deprecated HTML attribute"; }
45
+ *[bottommargin]:hover:after { content: " bottommargin is a deprecated HTML attribute"; }
46
+ *[leftmargin]:hover:after { content: " leftmargin is a deprecated HTML attribute"; }
47
+ *[rightmargin]:hover:after { content: " rightmargin is a deprecated HTML attribute"; }
48
+ *[topmargin]:hover:after { content: " topmargin is a deprecated HTML attribute"; }
49
+ *[marginheight]:hover:after { content: " marginheight is a deprecated HTML attribute"; }
50
+ *[marginwidth]:hover:after { content: " marginwidth is a deprecated HTML attribute"; }
51
+ *[alink]:hover:after { content: " alink is a deprecated HTML attribute"; }
52
+ *[link]:hover:after { content: " link is a deprecated HTML attribute"; }
53
+ *[text]:hover:after { content: " text is a deprecated HTML attribute"; }
54
+ *[vlink]:hover:after { content: " vlink is a deprecated HTML attribute"; }
55
+ *[align]:hover:after { content: " align is a deprecated HTML attribute"; }
56
+ *[valign]:hover:after { content: " valign is a deprecated HTML attribute"; }
57
+ *[hspace]:hover:after { content: " hspace is a deprecated HTML attribute"; }
58
+ *[vspace]:hover:after { content: " vspace is a deprecated HTML attribute"; }
59
+ *[height]:hover:after { content: " height is a deprecated HTML attribute"; }
60
+ *[width]:hover:after { content: " width is a deprecated HTML attribute"; }
61
+ ul[type]:hover:after, ol[type]:hover:after, li[type]:hover:after { content: " type is a deprecated HTML attribute"; }
62
+
63
+ /* Inline frames without title attribute */
64
+ iframe:not([title]){
65
+ outline: 2px solid red !important;
66
+ }
67
+
68
+ iframe:not([title]):hover:after {
69
+ content: " <iframe> does not have a title attribute defined.";
70
+ }
71
+
72
+
73
+ /**
74
+ * Image-related checks
75
+ * Can't add generated content to images. Think...
76
+ */
77
+
78
+ /* server-side image map. Yes these are sometimes still seen, if rarely */
79
+ img[ismap]{
80
+ outline: 2px solid red;
81
+ }
82
+ /* Images without alt attribute */
83
+ img:not([alt]) {
84
+ outline: 2px solid red;
85
+ }
86
+
87
+ /* something that has a role of image but no alternative */
88
+ div[role="img"]:not([aria-label]){
89
+ outline: 2px solid red;
90
+ }
91
+
92
+ /* I don't know if that will work; but worth a try. */
93
+ div[role="img"]:not([aria-label]):hover:after {
94
+ content: " This content has a role of image but no aria-label attribute.";
95
+ }
96
+
97
+ /* images without a source */
98
+ img:not([src]),
99
+ img[src=""],
100
+ img[src="#"]{
101
+ outline: 2px solid red !important;
102
+ }
103
+
104
+ /**
105
+ * Link-related checks
106
+ */
107
+
108
+ /* Bad links, possibly relying on javascript to do something */
109
+ a[href=""], a[href="#"], a:not([href]), a[href*=javascript\:], a[onclick]{
110
+ outline: 2px solid red !important;
111
+ }
112
+
113
+ a[href=""]:hover:after, a[href="#"]:hover:after, a:not([href]):hover:after, a[href*=javascript\:]:hover:after, a[onclick]:hover:after,
114
+ a[href=""]:focus:after, a[href="#"]:focus:after, a:not([href]):focus:after, a[href*=javascript\:]:focus:after, a[onclick]:focus:after {
115
+ content: " This link may depend on JavaScript to perform it's function.";
116
+ }
117
+
118
+ /**
119
+ * form-related checks
120
+ */
121
+
122
+ /*
123
+ Legends
124
+ */
125
+ fieldset > :not(legend):first-child, /* no other element than a legend can be first child of a fieldset element */
126
+ fieldset > legend:not(:first-child) { /* and a legend can't be anything else than first child of a fieldset element */
127
+ outline: 2px dashed red !important;
128
+ }
129
+
130
+ fieldset > :not(legend):first-child:after,
131
+ fieldset > legend:not(:first-child):after {
132
+ content: " <legend> must be the first child of a fieldset";
133
+ }
134
+
135
+
136
+ /*
137
+ Input[type="image"] and their alt attribute
138
+ Note: adding :before or :after on this type of element won't work. Maybe background-image encoded in base64?
139
+ @reference Technique for WCAG 2.0 H36: Using alt attributes on images used as submit buttons - http://www.w3.org/TR/WCAG-TECHS/H36.html
140
+ @reference Technique for WCAG 2.0 F65: Failure (...) due to omitting the alt attribute on (...) input elements of type "image" - http://www.w3.org/TR/WCAG-TECHS/F65.html
141
+ */
142
+ input[type="image"][alt=""],
143
+ input[type="image"]:not([alt]) {
144
+ display: block;
145
+ background-color: red !important;
146
+ width: 200px !important;
147
+ height: 3em !important;
148
+ }
149
+
150
+ /* Missing 'for' attribute on a label */
151
+ label:not([for]){
152
+ outline: 2px solid red !important;
153
+ }
154
+ label:not([for]):hover:after {
155
+ content: " This label does not have a for attribute associating it with a form input.";
156
+ }
157
+
158
+ /* Accesskey is a bad idea.
159
+ * @reference Old discussion but still hits on salient points http://www.cs.tut.fi/~jkorpela/forms/accesskey.html */
160
+ *[accesskey]{
161
+ outline: 2px solid red;
162
+ }
163
+
164
+ *[accesskey]:hover:after {
165
+ content: " Do not use the accesskey attribute.";
166
+ }
167
+
168
+
169
+ /**
170
+ * TABLE RELATED CHECKS
171
+ */
172
+
173
+ /* Empty Header Cells */
174
+ th:empty {
175
+ padding: 20px;
176
+ outline: 2px solid yellow !important;
177
+ }
178
+
179
+ th:empty:after {
180
+ content: " Table header cell is empty.";
181
+ }
182
+
183
+ /* only one TR in the table. Is that a layout table? */
184
+ table > tr:only-child,
185
+ table > tbody > tr:only-child {
186
+ outline: 2px solid red;
187
+ }
188
+
189
+ table > tr:only-child:after, table > tbody > tr:only-child:after {
190
+ content: " Table has only one row. Is this a layout table?"
191
+ }
192
+
193
+ /* Deprecated attributes on table */
194
+ table[align],
195
+ table[bgcolor],
196
+ table[outline],
197
+ table[cellpadding],
198
+ table[cellspacing],
199
+ table[width],
200
+ td[width],
201
+ td[valign] {
202
+ outline: 2px solid red;
203
+ }
204
+
205
+ table[align]:after,
206
+ table[bgcolor]:after,
207
+ table[outline]:after,
208
+ table[cellpadding]:after,
209
+ table[cellspacing]:after,
210
+ table[width]:after,
211
+ td[width]:after,
212
+ td[valign]:after {
213
+ content: " This table uses one or more deprecated attributes: align, bgcolor, outline, cellpadding, cellspacing, width, or valign";
214
+ }
lang/wp-accessibility-fr_FR.mo ADDED
Binary file
lang/wp-accessibility-fr_FR.po ADDED
@@ -0,0 +1,455 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: WP Accessibility v1.2.3\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2013-07-11 13:05:25+0000\n"
7
+ "Last-Translator: \n"
8
+ "Language-Team: \n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "Plural-Forms: nplurals=2; plural=n>1;\n"
13
+ "X-Generator: CSL v1.x\n"
14
+ "X-Poedit-Language: \n"
15
+ "X-Poedit-Country: \n"
16
+ "X-Poedit-SourceCharset: utf-8\n"
17
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
18
+ "X-Poedit-Basepath: \n"
19
+ "X-Poedit-Bookmarks: \n"
20
+ "X-Poedit-SearchPath-0: .\n"
21
+ "X-Textdomain-Support: yes"
22
+
23
+ #: wp-accessibility.php:71
24
+ #@ wp-accessibility
25
+ msgid "Accessibility Settings"
26
+ msgstr "Réglages d'accessibilité"
27
+
28
+ #: wp-accessibility.php:160
29
+ #@ wp-accessibility
30
+ msgid "Toggle High Contrast"
31
+ msgstr "Passer en contrast élevé"
32
+
33
+ #: wp-accessibility.php:161
34
+ #@ wp-accessibility
35
+ msgid "Toggle Grayscale"
36
+ msgstr "Basculer en niveau de gris"
37
+
38
+ #: wp-accessibility.php:162
39
+ #@ wp-accessibility
40
+ msgid "Toggle Font size"
41
+ msgstr "Changer la taille de la police"
42
+
43
+ #: wp-accessibility.php:234
44
+ #@ wp-accessibility
45
+ msgid "Skip to content"
46
+ msgstr "Aller au contenu"
47
+
48
+ #: wp-accessibility.php:236
49
+ #@ wp-accessibility
50
+ msgid "Skip to navigation"
51
+ msgstr "Aller à la navigation"
52
+
53
+ #: wp-accessibility.php:238
54
+ #@ wp-accessibility
55
+ msgid "Site map"
56
+ msgstr "Plan du site"
57
+
58
+ #: wp-accessibility.php:400
59
+ #@ wp-accessibility
60
+ msgid "Remove Title Attributes Settings Updated"
61
+ msgstr "Réglage pour la suppression des attributs title, mis à jour"
62
+
63
+ #: wp-accessibility.php:420
64
+ #@ wp-accessibility
65
+ msgid "WP Accessibility does not provide any styles for visible skiplinks. You can still set the look of the links using the textareas provided, but all other layout must be assigned in your theme."
66
+ msgstr "WP Accessibility ne fournit pas de propriété de style pour la visibilité des liens d'évitement. Vous pouvez toujours définir l'apparence des liens via les zones d'éditions proposées, mais toutes les autres instructions de mise en page doivent être placées dans votre thème."
67
+
68
+ #: wp-accessibility.php:424
69
+ #@ wp-accessibility
70
+ msgid "Add Skiplinks Settings Updated"
71
+ msgstr "Réglages pour l'Ajout de liens d'évitement, mis à jour"
72
+
73
+ #: wp-accessibility.php:452
74
+ #@ wp-accessibility
75
+ msgid "Miscellaneous Accessibility Settings Updated"
76
+ msgstr "Autres réglages d'accessibilité"
77
+
78
+ #: wp-accessibility.php:534
79
+ #@ wp-accessibility
80
+ msgid "WP Accessibility: Settings"
81
+ msgstr "Réglages de WP Accessibility"
82
+
83
+ #: wp-accessibility.php:539
84
+ #@ wp-accessibility
85
+ msgid "Remove Title Attributes"
86
+ msgstr "Supprimer les attributs <span lang=\"en\">title</span>"
87
+
88
+ #: wp-accessibility.php:543
89
+ #@ wp-accessibility
90
+ msgid "Remove title attributes from:"
91
+ msgstr "Supprimer les attributs <span lang=\"en\">title</span> pour :"
92
+
93
+ #: wp-accessibility.php:545
94
+ #@ wp-accessibility
95
+ msgid "Nav menus"
96
+ msgstr "Les menus de navigation"
97
+
98
+ #: wp-accessibility.php:546
99
+ #@ wp-accessibility
100
+ msgid "Page lists"
101
+ msgstr "Les listes de pages"
102
+
103
+ #: wp-accessibility.php:547
104
+ #@ wp-accessibility
105
+ msgid "Category lists"
106
+ msgstr "Les listes de catégories"
107
+
108
+ #: wp-accessibility.php:548
109
+ #@ wp-accessibility
110
+ msgid "Archive links"
111
+ msgstr "Les liens d'archivage"
112
+
113
+ #: wp-accessibility.php:549
114
+ #@ wp-accessibility
115
+ msgid "Tag clouds"
116
+ msgstr "Les nuages de tag"
117
+
118
+ #: wp-accessibility.php:550
119
+ #@ wp-accessibility
120
+ msgid "Category links"
121
+ msgstr "Les liens de catégories"
122
+
123
+ #: wp-accessibility.php:551
124
+ #@ wp-accessibility
125
+ msgid "Post edit links"
126
+ msgstr "Les liens d'édition de billets"
127
+
128
+ #: wp-accessibility.php:552
129
+ #@ wp-accessibility
130
+ msgid "Edit comment links"
131
+ msgstr "Les liens d'édition des commentaires"
132
+
133
+ #: wp-accessibility.php:559
134
+ #@ wp-accessibility
135
+ msgid "Update Title Attribute Settings"
136
+ msgstr "Mettre à jour les réglages pour les attributs title"
137
+
138
+ #: wp-accessibility.php:565
139
+ #@ wp-accessibility
140
+ msgid "Add Skiplinks"
141
+ msgstr "Ajouter des liens d'évitement"
142
+
143
+ #: wp-accessibility.php:569
144
+ #@ wp-accessibility
145
+ msgid "Configure Skiplinks"
146
+ msgstr "Configurer les liens d'évitement"
147
+
148
+ #: wp-accessibility.php:571
149
+ #@ wp-accessibility
150
+ msgid "Enable Skiplinks"
151
+ msgstr "Activer les liens d'évitement"
152
+
153
+ #: wp-accessibility.php:572
154
+ #@ wp-accessibility
155
+ msgid "Skiplinks always visible"
156
+ msgstr "Liens d'évitement toujours visibles"
157
+
158
+ #: wp-accessibility.php:573
159
+ #@ wp-accessibility
160
+ msgid "Skip to Content link target (ID of your main content container)"
161
+ msgstr "Cible du lien Aller au contenu (ID du conteneur principal)"
162
+
163
+ #: wp-accessibility.php:574
164
+ #@ wp-accessibility
165
+ msgid "Skip to Navigation link target (ID of your main navigation container)"
166
+ msgstr "Cible du lien Aller à la navigation (ID du conteneur de navigation principal)"
167
+
168
+ #: wp-accessibility.php:575
169
+ #@ wp-accessibility
170
+ msgid "Site Map link target (URL for your site map)"
171
+ msgstr "Cilbe du lien Plan du site (URL vers le plan du site)"
172
+
173
+ #: wp-accessibility.php:576
174
+ #@ wp-accessibility
175
+ msgid "Add your own link (link or container ID)"
176
+ msgstr "Ajouter votre propre lien (ID du lien ou du conteneur)"
177
+
178
+ #: wp-accessibility.php:576
179
+ #@ wp-accessibility
180
+ msgid "Link text for your link"
181
+ msgstr "Lien, texte de votre lien"
182
+
183
+ #: wp-accessibility.php:577
184
+ #@ wp-accessibility
185
+ msgid "Styles for Skiplinks when they have focus"
186
+ msgstr "Styles pour les liens d'évitement lorsqu'ils prennent le focus"
187
+
188
+ #: wp-accessibility.php:579
189
+ #@ wp-accessibility
190
+ msgid "(Not currently visible)"
191
+ msgstr "(Pas visible actuellement)"
192
+
193
+ #: wp-accessibility.php:580
194
+ #@ wp-accessibility
195
+ msgid "Styles for Skiplinks without focus"
196
+ msgstr "Styles pour les liens d'évitement n'ayant pas le focus"
197
+
198
+ #: wp-accessibility.php:588
199
+ #@ wp-accessibility
200
+ msgid "Update Skiplink Settings"
201
+ msgstr "Mettre à jour les réglages pour les liens d'évitement"
202
+
203
+ #: wp-accessibility.php:594
204
+ #@ wp-accessibility
205
+ msgid "Miscellaneous Accessibility Settings"
206
+ msgstr "Autres réglages d'accessibilité"
207
+
208
+ #: wp-accessibility.php:598
209
+ #@ wp-accessibility
210
+ msgid "Miscellaneous"
211
+ msgstr "Divers"
212
+
213
+ #: wp-accessibility.php:600
214
+ #@ wp-accessibility
215
+ msgid "Add Site Language and text direction to HTML element"
216
+ msgstr "Ajouter la langue du site et la direction du texte dans l'élément HTML"
217
+
218
+ #: wp-accessibility.php:601
219
+ #@ wp-accessibility
220
+ msgid "Remove target attribute from links"
221
+ msgstr "Supprimer l'attribut <span lang=\"en\">target</span> sur les liens"
222
+
223
+ #: wp-accessibility.php:602
224
+ #@ wp-accessibility
225
+ msgid "Force search error on empty search submission (theme must have search.php template)"
226
+ msgstr "Forcer l'erreur de recherche lors de l'envoi d'une recherche vide (votre thème doit comporter le template search.php)."
227
+
228
+ #: wp-accessibility.php:603
229
+ #@ wp-accessibility
230
+ msgid "Remove tabindex from focusable elements"
231
+ msgstr "Supprimer le tabindex sur les éléments pouvant recevoir le focus"
232
+
233
+ #: wp-accessibility.php:604
234
+ #@ wp-accessibility
235
+ msgid "Enable WordPress Admin stylesheet"
236
+ msgstr "Activer la feuille de style d'administration de Wordpress"
237
+
238
+ #: wp-accessibility.php:605
239
+ #@ wp-accessibility
240
+ msgid "Remove title attribute from images inserted into post content and featured images."
241
+ msgstr "Supprimer l'attribut <span lang=\"en\">title</span> sur les images"
242
+
243
+ #: wp-accessibility.php:606
244
+ #@ wp-accessibility
245
+ msgid "Add Accessibility toolbar with fontsize adjustment and contrast toggle"
246
+ msgstr "Ajouter la barre d'accessibilité avec le réglage de la taille de police et le changement de contraste"
247
+
248
+ #: wp-accessibility.php:607
249
+ #@ wp-accessibility
250
+ msgid "Include grayscale toggle with Accessibility toolbar"
251
+ msgstr "Inclure le changement du niveau de gris dans la barre d'accessibilité"
252
+
253
+ #: wp-accessibility.php:608
254
+ #@ wp-accessibility
255
+ msgid "Add post title to \"more\" links."
256
+ msgstr "Ajouter le titre du billet sur les liens \"lire la suite\""
257
+
258
+ #: wp-accessibility.php:609
259
+ #@ wp-accessibility
260
+ msgid "Continue reading text"
261
+ msgstr "Texte pour le lien Lire la suite"
262
+
263
+ #: wp-accessibility.php:610
264
+ #@ wp-accessibility
265
+ msgid "Add outline to elements on keyboard focus"
266
+ msgstr "Ajouter un contour lors de la prise de focus via le clavier"
267
+
268
+ #: wp-accessibility.php:610
269
+ #@ wp-accessibility
270
+ msgid "Outline color (hexadecimal, optional)"
271
+ msgstr "Couleur du contour (hexadécimal, optionnel)"
272
+
273
+ #: wp-accessibility.php:617
274
+ #@ wp-accessibility
275
+ msgid "Update Miscellaneous Settings"
276
+ msgstr "Mettre à jour les autres réglages d'accessibilité"
277
+
278
+ #: wp-accessibility.php:622
279
+ #@ wp-accessibility
280
+ msgid "Color Contrast Tester"
281
+ msgstr "Testeur de contraste de couleurs"
282
+
283
+ #: wp-accessibility.php:639
284
+ #, php-format
285
+ #@ wp-accessibility
286
+ msgid "Luminosity Contrast Ratio for <code>#%2$s</code> and <code>#%3$s</code> is <strong>%1$s</strong> (Threshold: greater than 7:1 for AAA, 4.5:1 for AA)"
287
+ msgstr "Le ratio de contraste de luminosity pour <code>#%2$s</code> et <code>#%3$s</code> est <strong>%1$s</strong> (Seuil : supérieur à 7:1 niveau AAA, 4.5:1 niveau AA)"
288
+
289
+ #: wp-accessibility.php:641
290
+ #@ wp-accessibility
291
+ msgid "The colors compared <strong>pass</strong> the relative luminosity test at level AAA."
292
+ msgstr "La comparaison des couleurs <strong>passe</strong> le test de luminosité relative pour le niveau AAA."
293
+
294
+ #: wp-accessibility.php:644
295
+ #@ wp-accessibility
296
+ msgid "The colors compared <strong>pass</strong> the relative luminosity test at level AA."
297
+ msgstr "La comparaison des couleurs <strong>passe</strong> le test de luminosité relative pour le niveau AA."
298
+
299
+ #: wp-accessibility.php:647
300
+ #@ wp-accessibility
301
+ msgid "The colors compared pass the relative luminosity test <strong>only when used in large print</strong> situations (greater than 18pt text or 14pt bold text.)"
302
+ msgstr "La comparaison des couleurs passe le test de luminosité relative <strong>Uniquement lorsqu'il est utilisé avec des grands caractères</strong> (texte supérieur 18pt ou 14pt gras)."
303
+
304
+ #: wp-accessibility.php:650
305
+ #@ wp-accessibility
306
+ msgid "The colors compared <strong>do not pass</strong> the relative luminosity test."
307
+ msgstr "La comparaison des couleurs <strong>ne passe pas</strong> le test de luminosité relative."
308
+
309
+ #: wp-accessibility.php:652
310
+ #@ wp-accessibility
311
+ msgid "Test another set of colors"
312
+ msgstr "Tester un autre jeu de couleurs"
313
+
314
+ #: wp-accessibility.php:667
315
+ #@ wp-accessibility
316
+ msgid "Test of relative luminosity"
317
+ msgstr "Test de luminosité relative"
318
+
319
+ #: wp-accessibility.php:669
320
+ #@ wp-accessibility
321
+ msgid "Foreground color"
322
+ msgstr "Couleur d'avant-plan"
323
+
324
+ #: wp-accessibility.php:670
325
+ #@ wp-accessibility
326
+ msgid "Background color"
327
+ msgstr "Couleur d'arrière-plan"
328
+
329
+ #: wp-accessibility.php:677
330
+ #@ wp-accessibility
331
+ msgid "Check Color Contrast"
332
+ msgstr "Vérifier le contraste de couleurs"
333
+
334
+ #: wp-accessibility.php:682
335
+ #@ wp-accessibility
336
+ msgid "Get Plug-in Support"
337
+ msgstr "Obtenir du support pour l'extension"
338
+
339
+ #: wp-accessibility.php:695
340
+ #@ wp-accessibility
341
+ msgid "Support this Plugin"
342
+ msgstr "Soutenir cette extension"
343
+
344
+ #: wp-accessibility.php:703
345
+ #@ wp-to-twitter
346
+ msgid "<a href=\"http://www.joedolson.com/donate.php\">Make a donation today!</a> Every donation counts - donate $2, $10, or $100 and help me keep this plug-in running!"
347
+ msgstr "<a href=\"http://www.joedolson.com/donate.php\">Faites un don aujourd'hui !</a> Chaque don compte - Donnez-moi 2 euro, 10 euro ou 100 euro et aidez-moi à faire fonctionner cette extension !"
348
+
349
+ #: wp-accessibility.php:719
350
+ #@ wp-accessibility
351
+ msgid "Accessibility References"
352
+ msgstr "Références sur l'accessibilité"
353
+
354
+ #: wp-accessibility.php:734
355
+ #@ wp-accessibility
356
+ msgid "Contributing References"
357
+ msgstr "Références de travail"
358
+
359
+ #: wp-accessibility.php:751
360
+ #@ wp-accessibility
361
+ msgid "Accessibility Toolbar Notes"
362
+ msgstr "Notes concernant la bare d'outil d'accessibilité"
363
+
364
+ #: wp-accessibility.php:754
365
+ #@ wp-accessibility
366
+ msgid "It is almost impossible for the Accessibility Toolbar to guarantee a good result for large text or high contrast modes. You can author your own high-contrast styles by placing a stylesheet called <code>a11y-contrast.css</code> in your Theme's stylesheet directory."
367
+ msgstr "Il est quasi impossible pour la barre d'outils d'accessibilité de garantir un bon résultat avec les modes texte agrandi et contraste élevé. Vous pouvez créer votre propre style de contraste élevé en plaçant une feuille de style nommée <code>a11y-contrast.css</code> dans le dossier des feuilles de style de votre thème."
368
+
369
+ #: wp-accessibility.php:757
370
+ #@ default
371
+ msgid "You can define custom styles for the large print view by defining them under the body class <code>.fontsize</code> in your theme stylesheet."
372
+ msgstr "Vous pouvez créer des styles personnalisés pour un affichage agrandi en les définissant sous la classe <code>.fontsize</code> dans les feuilles de style de votre thème."
373
+
374
+ #: wp-accessibility.php:802
375
+ #@ wp-accessibility
376
+ msgid "WP A11Y: Recent Posts"
377
+ msgstr "Billets récents concernant WP A11Y"
378
+
379
+ #: wp-accessibility.php:819
380
+ #@ default
381
+ msgid "Recent Posts"
382
+ msgstr "Billets récents"
383
+
384
+ #: wp-accessibility.php:862
385
+ #@ default
386
+ msgid "Title:"
387
+ msgstr "Titre"
388
+
389
+ #: wp-accessibility.php:865
390
+ #@ default
391
+ msgid "Number of posts to show:"
392
+ msgstr "Nombre de billets à afficher :"
393
+
394
+ #: wp-accessibility.php:952
395
+ #@ wp-accessibility
396
+ msgid "Please read the FAQ and other Help documents before making a support request."
397
+ msgstr "Veuillez consulter la FAQ et les autres documents d'aide avant de faire une demande de support."
398
+
399
+ #: wp-accessibility.php:954
400
+ #@ wp-accessibility
401
+ msgid "Please describe your problem. I'm not psychic."
402
+ msgstr "Veuillez décrire votre problème. Je ne suis pas devin."
403
+
404
+ #: wp-accessibility.php:958
405
+ #@ wp-accessibility
406
+ msgid "Thank you for supporting the continuing development of this plug-in! I'll get back to you as soon as I can."
407
+ msgstr "Merci de soutnenir le développement continu de cette extension. Je reviendrai vers vous dès que possible."
408
+
409
+ #: wp-accessibility.php:960
410
+ #@ wp-accessibility
411
+ msgid "I cannot provide free support, but will treat your request as a bug report, and will incorporate any permanent solutions I discover into the plug-in."
412
+ msgstr "Je ne peux pas fournir du support gratuit mais traiterai votre demande comme un report de bug, et intègrerai à l'extension toute solution stable que j'aurais trouvée."
413
+
414
+ #: wp-accessibility.php:972
415
+ #@ wp-accessibility
416
+ msgid "<strong>Please note</strong>: I do keep records of those who have donated, but if your donation came from somebody other than your account at this web site, you must note this in your message."
417
+ msgstr "<strong>Note :</strong> Je garde trace de tous ceux qui me font des dons, mais si votre don provient de quelqu'un d'autre n'ayant pas de compte sur ce site, veuillez l'indiquer dans votre message."
418
+
419
+ #: wp-accessibility.php:976
420
+ #@ wp-accessibility
421
+ msgid "From:"
422
+ msgstr "De :"
423
+
424
+ #: wp-accessibility.php:979
425
+ #, php-format
426
+ #@ wp-accessibility
427
+ msgid "I have read <a href=\"%1$s\">the FAQ for this plug-in</a> <span>(required)</span>"
428
+ msgstr "J'ai lu <a href=\"%1$s\">La FAQ pour cette extension</a> <span>(requis)</span>"
429
+
430
+ #: wp-accessibility.php:982
431
+ #, php-format
432
+ #@ wp-accessibility
433
+ msgid "I have <a href=\"%1$s\">made a donation to help support this plug-in</a>"
434
+ msgstr "J'ai <a href=\"%1$s\">fait un don pour soutenir cette extension</a>"
435
+
436
+ #: wp-accessibility.php:985
437
+ #@ wp-accessibility
438
+ msgid "Support Request:"
439
+ msgstr "Demande de support :"
440
+
441
+ #: wp-accessibility.php:988
442
+ #@ wp-accessibility
443
+ msgid "Send Support Request"
444
+ msgstr "Envoyer la demande de support"
445
+
446
+ #: wp-accessibility.php:991
447
+ #@ wp-accessibility
448
+ msgid "The following additional information will be sent with your support request:"
449
+ msgstr "Les informations supplémentaires suivantes seront envoyées avec votre demande de support :"
450
+
451
+ #: wp-accessibility.php:701
452
+ #@ wp-accessibility
453
+ msgid "If you've found WP Accessibility useful, then please consider <a href='http://wordpress.org/extend/plugins/wp-accessibility/'>rating it five stars</a>, <a href='http://www.joedolson.com/donate.php'>making a donation</a>, or <a href='http://translate.joedolson.com/projects/wp-accessibility'>helping with translation</a>."
454
+ msgstr ""
455
+
readme.txt CHANGED
@@ -45,6 +45,21 @@ Translating my plug-ins is always appreciated. Visit <a href="http://translate.j
45
 
46
  == Changelog ==
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  = 1.2.3 =
49
 
50
  * Updated jQuery ScrollTo to version 1.4.5 to resolve JS conflict.
@@ -112,4 +127,4 @@ Even if WP Accessibility is running correctly, not all accessibility testing too
112
 
113
  == Upgrade Notice ==
114
 
115
- * Bug fix for custom skiplink target; Added focus outline option; Added color contrast tool.
45
 
46
  == Changelog ==
47
 
48
+ = 1.2.4.1=
49
+
50
+ * Minor settings bug.
51
+
52
+ = 1.2.4 =
53
+
54
+ * Added diagnostic.css (beta) for admin users on front end and in post editor.
55
+ * Bug fix in a11y.js; incorrect function call in scrollTo.
56
+ * Bug fix in a11y.js; removed hook to # urls
57
+ * Added visible logout link to admin to support users of voice activated controls.
58
+ * Bug fix to built-in support request form.
59
+ * Added filter wpa_move_toolbar to make it possible to attach a11y toolbar to something other than the body element.
60
+ * Added French translation.
61
+
62
+
63
  = 1.2.3 =
64
 
65
  * Updated jQuery ScrollTo to version 1.4.5 to resolve JS conflict.
127
 
128
  == Upgrade Notice ==
129
 
130
+ * 1.2.4: Added diagnostic CSS, visible logout link.
toolbar/js/a11y.js CHANGED
@@ -105,10 +105,10 @@ jQuery(document).ready(function($) {
105
 
106
  // If there is a '#' in the URL (someone linking directly to a page with an anchor), go directly to that area and focus is
107
  // Thanks to WebAIM.org for this idea
108
- if (document.location.hash) {
109
  var anchorUponArrival = document.location.hash;
110
  setTimeout(function() {
111
- $(anchorUponArrival).Scrollto({ duration: 1500 });
112
  $(anchorUponArrival).focus();
113
  }, 100);
114
  }
@@ -117,7 +117,7 @@ jQuery(document).ready(function($) {
117
  // Thanks to WebAIM.org for this idea
118
  $('a[href^="#"]').click(function(event) {
119
  var inPageAnchor = "#" + this.href.split('#')[1];
120
- $(inPageAnchor).ScrollTo({ duration: 1000 });
121
  setTimeout(function() {
122
  $(inPageAnchor).focus();
123
  }, 100);
105
 
106
  // If there is a '#' in the URL (someone linking directly to a page with an anchor), go directly to that area and focus is
107
  // Thanks to WebAIM.org for this idea
108
+ if (document.location.hash && document.location.hash != '#' ) {
109
  var anchorUponArrival = document.location.hash;
110
  setTimeout(function() {
111
+ $(anchorUponArrival).scrollTo({ duration: 1500 });
112
  $(anchorUponArrival).focus();
113
  }, 100);
114
  }
117
  // Thanks to WebAIM.org for this idea
118
  $('a[href^="#"]').click(function(event) {
119
  var inPageAnchor = "#" + this.href.split('#')[1];
120
+ $(inPageAnchor).scrollTo({ duration: 1000 });
121
  setTimeout(function() {
122
  $(inPageAnchor).focus();
123
  }, 100);
uninstall.php CHANGED
@@ -28,4 +28,5 @@ if ( !defined( 'ABSPATH' ) && !defined( 'WP_UNINSTALL_PLUGIN' ) ) {
28
  delete_option( 'wpa_more' );
29
  delete_option( 'wpa_continue' );
30
  delete_option( 'wpa_toolbar' );
 
31
  }
28
  delete_option( 'wpa_more' );
29
  delete_option( 'wpa_continue' );
30
  delete_option( 'wpa_toolbar' );
31
+ delete_option( 'wpa_diagnostics' );
32
  }
wp-accessibility.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: WP Accessibility
4
  Plugin URI: http://www.joedolson.com/articles/wp-accessibility/
5
  Description: Provides options to improve accessibility in your WordPress site, including removing title attributes.
6
- Version: 1.2.3
7
  Author: Joe Dolson
8
  Author URI: http://www.joedolson.com/
9
 
@@ -36,7 +36,7 @@ function add_wpa_admin_menu() {
36
 
37
  // ACTIVATION
38
  function wpa_install() {
39
- $wpa_version = '1.2.3';
40
  if ( get_option('wpa_installed') != 'true' ) {
41
  add_option('rta_from_nav_menu', 'on');
42
  add_option('rta_from_page_lists', 'on');
@@ -160,6 +160,7 @@ function wpa_toolbar_js() {
160
  $contrast = __('Toggle High Contrast','wp-accessibility');
161
  $grayscale = __('Toggle Grayscale','wp-accessibility');
162
  $fontsize = __('Toggle Font size','wp-accessibility');
 
163
  echo
164
  "
165
  <script type='text/javascript'>
@@ -175,7 +176,7 @@ echo
175
  insert_a11y_toolbar += '</ul>';
176
  insert_a11y_toolbar += '</div>';
177
  insert_a11y_toolbar += '<!-- // a11y toolbar -->';
178
- $(document).find('body').prepend(insert_a11y_toolbar);
179
  }(jQuery));
180
  //]]>
181
  </script>";
@@ -263,12 +264,37 @@ function wpa_jquery_asl() {
263
  }
264
  }
265
 
 
 
 
 
 
 
 
 
 
 
 
 
266
  function wpa_stylesheet() {
267
  // Respects SSL, Style.css is relative to the current file
268
  wp_register_style( 'wpa-style', plugins_url('wpa-style.css', __FILE__) );
269
  wp_enqueue_style( 'wpa-style' );
270
  wp_register_style( 'ui-a11y.css', plugins_url( 'toolbar/css/a11y.css', __FILE__) );
271
  wp_enqueue_style( 'ui-a11y.css' );
 
 
 
 
 
 
 
 
 
 
 
 
 
272
  }
273
 
274
  function wpa_luminosity($r,$r2,$g,$g2,$b,$b2) {
@@ -324,7 +350,7 @@ function wpa_hex2rgb($color){
324
 
325
  function wpa_contrast() {
326
  if ( !empty($_POST) ) {
327
- $nonce=$_REQUEST['_wpnonce']; if (! wp_verify_nonce($nonce,'wpa-nonce') ) die("Security check failed");
328
  if (isset($_POST['color']) && $_POST['color'] != "") {
329
  $fore_color = $_POST['color'];
330
  if ($fore_color[0] == "#") {
@@ -437,6 +463,7 @@ function wpa_update_settings() {
437
  $wpa_toolbar = ( isset( $_POST['wpa_toolbar'] ) )?'on':'';
438
  $wpa_toolbar_gs = ( isset( $_POST['wpa_toolbar_gs'] ) )?'on':'';
439
  $wpa_admin_css = ( isset( $_POST['wpa_admin_css'] ) )?'on':'';
 
440
  update_option('wpa_lang', $wpa_lang );
441
  update_option('wpa_target', $wpa_target );
442
  update_option('wpa_search', $wpa_search );
@@ -449,6 +476,7 @@ function wpa_update_settings() {
449
  update_option('wpa_focus_color', $wpa_focus_color );
450
  update_option('wpa_continue', $wpa_continue );
451
  update_option('wpa_admin_css', $wpa_admin_css );
 
452
  $message = __("Miscellaneous Accessibility Settings Updated",'wp-accessibility');
453
  return "<div class='updated'><p>".$message."</p></div>";
454
  }
@@ -604,7 +632,8 @@ function wpa_admin_menu() { ?>
604
  <li><input type="checkbox" id="wpa_admin_css" name="wpa_admin_css" <?php if ( get_option('wpa_admin_css') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_admin_css"><?php _e('Enable WordPress Admin stylesheet','wp-accessibility'); ?></label></li>
605
  <li><input type="checkbox" id="wpa_image_titles" name="wpa_image_titles" <?php if ( get_option('wpa_image_titles') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_image_titles"><?php _e('Remove title attribute from images inserted into post content and featured images.','wp-accessibility'); ?></label></li>
606
  <li><input type="checkbox" id="wpa_toolbar" name="wpa_toolbar" <?php if ( get_option('wpa_toolbar') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_toolbar"><?php _e('Add Accessibility toolbar with fontsize adjustment and contrast toggle','wp-accessibility'); ?></label></li>
607
- <li><input type="checkbox" id="wpa_toolbar_gs" name="wpa_toolbar_gs" <?php if ( get_option('wpa_toolbar_gs') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_toolbar_gs"><?php _e('Include grayscale toggle with Accessibility toolbar','wp-accessibility'); ?></label></li>
 
608
  <li><input type="checkbox" id="wpa_more" name="wpa_more" <?php if ( get_option('wpa_more') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_more"><?php _e('Add post title to "more" links.','wp-accessibility'); ?></label>
609
  <label for="wpa_continue"><?php _e('Continue reading text','wp-accessibility'); ?></label> <input type="text" id="wpa_continue" name="wpa_continue" value="<?php echo esc_attr(get_option('wpa_continue') ); ?>" /></li>
610
  <li><input type="checkbox" id="wpa_focus" name="wpa_focus" <?php if ( get_option('wpa_focus') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_focus"><?php _e('Add outline to elements on keyboard focus','wp-accessibility'); ?></label> <label for="wpa_focus_color"><?php _e('Outline color (hexadecimal, optional)','wp-accessibility' ); ?></label><input type="text" id="wpa_focus_color" name="wpa_focus_color" value="#<?php echo esc_attr(get_option('wpa_focus_color') ); ?>" /></li>
@@ -940,7 +969,7 @@ $plugins_string
940
  ";
941
  if ( isset($_POST['wpt_support']) ) {
942
  $nonce=$_REQUEST['_wpnonce'];
943
- if (! wp_verify_nonce($nonce,'wp-accessibility-nonce') ) die("Security check failed");
944
  $request = ( !empty($_POST['support_request']) )?stripslashes($_POST['support_request']):false;
945
  $has_donated = ( $_POST['has_donated'] == 'on')?"Donor":"No donation";
946
  $has_read_faq = ( $_POST['has_read_faq'] == 'on')?"Read FAQ":false;
@@ -965,7 +994,7 @@ $plugins_string
965
 
966
  echo "
967
  <form method='post' action='$admin_url'>
968
- <div><input type='hidden' name='_wpnonce' value='".wp_create_nonce('wp-accessibility-nonce')."' /></div>
969
  <div>";
970
  echo "
971
  <p>".
3
  Plugin Name: WP Accessibility
4
  Plugin URI: http://www.joedolson.com/articles/wp-accessibility/
5
  Description: Provides options to improve accessibility in your WordPress site, including removing title attributes.
6
+ Version: 1.2.4.1
7
  Author: Joe Dolson
8
  Author URI: http://www.joedolson.com/
9
 
36
 
37
  // ACTIVATION
38
  function wpa_install() {
39
+ $wpa_version = '1.2.4.1';
40
  if ( get_option('wpa_installed') != 'true' ) {
41
  add_option('rta_from_nav_menu', 'on');
42
  add_option('rta_from_page_lists', 'on');
160
  $contrast = __('Toggle High Contrast','wp-accessibility');
161
  $grayscale = __('Toggle Grayscale','wp-accessibility');
162
  $fontsize = __('Toggle Font size','wp-accessibility');
163
+ $location = apply_filters( 'wpa_move_toolbar', 'body' );
164
  echo
165
  "
166
  <script type='text/javascript'>
176
  insert_a11y_toolbar += '</ul>';
177
  insert_a11y_toolbar += '</div>';
178
  insert_a11y_toolbar += '<!-- // a11y toolbar -->';
179
+ $(document).find('$location').prepend(insert_a11y_toolbar);
180
  }(jQuery));
181
  //]]>
182
  </script>";
264
  }
265
  }
266
 
267
+ // courtesy of Graham Armfield (modified)
268
+ // http://www.coolfields.co.uk/2013/02/wordpress-permanently-visible-log-out-link-plugin-version-0-1/
269
+ add_action( 'admin_bar_menu', 'wpa_logout_item', 11 );
270
+ function wpa_logout_item($admin_bar){
271
+ $args = array(
272
+ 'id' => 'wpa-logout',
273
+ 'title' => 'Log Out',
274
+ 'href' => wp_logout_url(),
275
+ );
276
+ $admin_bar->add_node( $args );
277
+ }
278
+
279
  function wpa_stylesheet() {
280
  // Respects SSL, Style.css is relative to the current file
281
  wp_register_style( 'wpa-style', plugins_url('wpa-style.css', __FILE__) );
282
  wp_enqueue_style( 'wpa-style' );
283
  wp_register_style( 'ui-a11y.css', plugins_url( 'toolbar/css/a11y.css', __FILE__) );
284
  wp_enqueue_style( 'ui-a11y.css' );
285
+ if ( current_user_can( 'edit_files' ) && get_option('wpa_diagnostics') == 'on' ) {
286
+ wp_register_style( 'diagnostic', plugins_url('diagnostic.css', __FILE__) );
287
+ wp_register_style( 'diagnostic-head', plugins_url('diagnostic-head.css', __FILE__) );
288
+ wp_enqueue_style( 'diagnostic' );
289
+ wp_enqueue_style( 'diagnostic-head' );
290
+ }
291
+ }
292
+ add_filter( 'mce_css', 'wp_diagnostic_css' );
293
+ function wp_diagnostic_css( $mce_css ) {
294
+ if ( get_option('wpa_diagnostics') == 'on' ) {
295
+ $mce_css .= ', ' . plugins_url( 'diagnostic.css', __FILE__ );
296
+ return $mce_css;
297
+ }
298
  }
299
 
300
  function wpa_luminosity($r,$r2,$g,$g2,$b,$b2) {
350
 
351
  function wpa_contrast() {
352
  if ( !empty($_POST) ) {
353
+ $nonce=$_REQUEST['_wpnonce']; if (!wp_verify_nonce($nonce,'wpa-nonce') ) die("Security check failed");
354
  if (isset($_POST['color']) && $_POST['color'] != "") {
355
  $fore_color = $_POST['color'];
356
  if ($fore_color[0] == "#") {
463
  $wpa_toolbar = ( isset( $_POST['wpa_toolbar'] ) )?'on':'';
464
  $wpa_toolbar_gs = ( isset( $_POST['wpa_toolbar_gs'] ) )?'on':'';
465
  $wpa_admin_css = ( isset( $_POST['wpa_admin_css'] ) )?'on':'';
466
+ $wpa_diagnostics = ( isset( $_POST['wpa_diagnostics'] ) )?'on':'';
467
  update_option('wpa_lang', $wpa_lang );
468
  update_option('wpa_target', $wpa_target );
469
  update_option('wpa_search', $wpa_search );
476
  update_option('wpa_focus_color', $wpa_focus_color );
477
  update_option('wpa_continue', $wpa_continue );
478
  update_option('wpa_admin_css', $wpa_admin_css );
479
+ update_option('wpa_diagnostics', $wpa_diagnostics );
480
  $message = __("Miscellaneous Accessibility Settings Updated",'wp-accessibility');
481
  return "<div class='updated'><p>".$message."</p></div>";
482
  }
632
  <li><input type="checkbox" id="wpa_admin_css" name="wpa_admin_css" <?php if ( get_option('wpa_admin_css') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_admin_css"><?php _e('Enable WordPress Admin stylesheet','wp-accessibility'); ?></label></li>
633
  <li><input type="checkbox" id="wpa_image_titles" name="wpa_image_titles" <?php if ( get_option('wpa_image_titles') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_image_titles"><?php _e('Remove title attribute from images inserted into post content and featured images.','wp-accessibility'); ?></label></li>
634
  <li><input type="checkbox" id="wpa_toolbar" name="wpa_toolbar" <?php if ( get_option('wpa_toolbar') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_toolbar"><?php _e('Add Accessibility toolbar with fontsize adjustment and contrast toggle','wp-accessibility'); ?></label></li>
635
+ <li><input type="checkbox" id="wpa_toolbar_gs" name="wpa_toolbar_gs" <?php if ( get_option('wpa_toolbar_gs') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_toolbar_gs"><?php _e('Include grayscale toggle with Accessibility toolbar','wp-accessibility'); ?></label></li>
636
+ <li><input type="checkbox" id="wpa_diagnostics" name="wpa_diagnostics" <?php if ( get_option('wpa_diagnostics') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_diagnostics"><?php _e('Enable diagnostic CSS','wp-accessibility'); ?></label></li>
637
  <li><input type="checkbox" id="wpa_more" name="wpa_more" <?php if ( get_option('wpa_more') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_more"><?php _e('Add post title to "more" links.','wp-accessibility'); ?></label>
638
  <label for="wpa_continue"><?php _e('Continue reading text','wp-accessibility'); ?></label> <input type="text" id="wpa_continue" name="wpa_continue" value="<?php echo esc_attr(get_option('wpa_continue') ); ?>" /></li>
639
  <li><input type="checkbox" id="wpa_focus" name="wpa_focus" <?php if ( get_option('wpa_focus') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_focus"><?php _e('Add outline to elements on keyboard focus','wp-accessibility'); ?></label> <label for="wpa_focus_color"><?php _e('Outline color (hexadecimal, optional)','wp-accessibility' ); ?></label><input type="text" id="wpa_focus_color" name="wpa_focus_color" value="#<?php echo esc_attr(get_option('wpa_focus_color') ); ?>" /></li>
969
  ";
970
  if ( isset($_POST['wpt_support']) ) {
971
  $nonce=$_REQUEST['_wpnonce'];
972
+ if (! wp_verify_nonce($nonce,'wpa-nonce') ) die("Security check failed");
973
  $request = ( !empty($_POST['support_request']) )?stripslashes($_POST['support_request']):false;
974
  $has_donated = ( $_POST['has_donated'] == 'on')?"Donor":"No donation";
975
  $has_read_faq = ( $_POST['has_read_faq'] == 'on')?"Read FAQ":false;
994
 
995
  echo "
996
  <form method='post' action='$admin_url'>
997
+ <div><input type='hidden' name='_wpnonce' value='".wp_create_nonce('wpa-nonce')."' /></div>
998
  <div>";
999
  echo "
1000
  <p>".