Version Description
- Truly hides grayscale option, not dependent on CSS.
- Eliminates in-page anchor focusing, due to conflicts with plug-ins that attach scripts to links with hashes.
- Remove row action visibility from default admin stylesheet, due to 3.7 changes making those links keyboard accessible.
- Added row actions always visible option.
Download this release
Release Info
Developer | joedolson |
Plugin | WP Accessibility |
Version | 1.2.6 |
Comparing to | |
See all releases |
Code changes from version 1.2.5 to 1.2.6
- diagnostic-head.css +0 -1
- readme.txt +23 -8
- toolbar/js/a11y.js +3 -2
- wp-accessibility.php +21 -9
- wp-admin-row-actions.css +6 -0
- wp-admin.css +1 -5
diagnostic-head.css
CHANGED
@@ -15,7 +15,6 @@ body:before { content: "Currently viewing with diagnostic CSS enabled."; display
|
|
15 |
background-color: lightyellow !important;
|
16 |
}
|
17 |
|
18 |
-
|
19 |
/*
|
20 |
title element: not empty, unique and in head
|
21 |
*/
|
15 |
background-color: lightyellow !important;
|
16 |
}
|
17 |
|
|
|
18 |
/*
|
19 |
title element: not empty, unique and in head
|
20 |
*/
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: joedolson
|
|
3 |
Donate link: http://www.joedolson.com/donate.php
|
4 |
Tags: title, accessibility, accessible, navigation, wcag, a11y, section508, focus
|
5 |
Requires at least: 3.4.2
|
6 |
-
Tested up to: 3.
|
7 |
Stable tag: 1.2.5
|
8 |
License: GPLv2 or later
|
9 |
|
@@ -15,24 +15,32 @@ This plug-in helps correct a variety of common accessibility problems in WordPre
|
|
15 |
|
16 |
All features can be disabled according to your theme's needs. For advanced users, all of the functions based on modifying stylesheets can be customized using your own custom styles by placing the appropriate stylesheet in your theme directory.
|
17 |
|
18 |
-
|
19 |
|
20 |
-
* Remove redundant title attributes from page lists, category lists, and archive menus.
|
21 |
* Enable skip links with WebKit support by enqueuing JavaScript support for moving keyboard focus.
|
22 |
* Add skip links with user-defined targets. (Customizable targets and appearance.)
|
23 |
* Add language and text direction attributes to your HTML attribute
|
|
|
|
|
|
|
|
|
|
|
24 |
* Remove the target attribute from links.
|
25 |
* Force a search page error when a search is made with an empty text string. (If your theme has a search.php template.)
|
26 |
* Remove tabindex from elements that are focusable.
|
27 |
* Strip title attributes from images inserted into content.
|
|
|
28 |
* Add post titles to standard "read more" links.
|
29 |
-
*
|
30 |
-
|
31 |
-
|
|
|
32 |
* Show the color contrast between two provided hexadecimal color values.
|
33 |
-
*
|
34 |
|
35 |
-
|
|
|
|
|
36 |
|
37 |
Translating my plug-ins is always appreciated. Visit <a href="http://translate.joedolson.com">my translations site</a> to start getting your language into shape!
|
38 |
|
@@ -49,6 +57,13 @@ Visit the [WP Accessibility translations site](http://translate.joedolson.com/pr
|
|
49 |
|
50 |
== Changelog ==
|
51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
= 1.2.5 =
|
53 |
|
54 |
* Added Spanish translation.
|
3 |
Donate link: http://www.joedolson.com/donate.php
|
4 |
Tags: title, accessibility, accessible, navigation, wcag, a11y, section508, focus
|
5 |
Requires at least: 3.4.2
|
6 |
+
Tested up to: 3.7.1
|
7 |
Stable tag: 1.2.5
|
8 |
License: GPLv2 or later
|
9 |
|
15 |
|
16 |
All features can be disabled according to your theme's needs. For advanced users, all of the functions based on modifying stylesheets can be customized using your own custom styles by placing the appropriate stylesheet in your theme directory.
|
17 |
|
18 |
+
Accessibility Features provided by WP Accessibility:
|
19 |
|
|
|
20 |
* Enable skip links with WebKit support by enqueuing JavaScript support for moving keyboard focus.
|
21 |
* Add skip links with user-defined targets. (Customizable targets and appearance.)
|
22 |
* Add language and text direction attributes to your HTML attribute
|
23 |
+
* Add an outline to the keyboard focus state for focusable elements.
|
24 |
+
* Add a toolbar toggling between high contrast, large print, and desaturated (grayscale) views of your theme.
|
25 |
+
|
26 |
+
Accessibility Issues fixed by WP Accessibility:
|
27 |
+
|
28 |
* Remove the target attribute from links.
|
29 |
* Force a search page error when a search is made with an empty text string. (If your theme has a search.php template.)
|
30 |
* Remove tabindex from elements that are focusable.
|
31 |
* Strip title attributes from images inserted into content.
|
32 |
+
* Remove redundant title attributes from page lists, category lists, and archive menus.
|
33 |
* Add post titles to standard "read more" links.
|
34 |
+
* Fix some accessibility issues in the WordPress admin styles
|
35 |
+
|
36 |
+
Accessibility Tools built into WP Accessibility:
|
37 |
+
|
38 |
* Show the color contrast between two provided hexadecimal color values.
|
39 |
+
* Enable diagnostic CSS to show CSS-detectable problems in visual editor or on front-end of site.
|
40 |
|
41 |
+
Learn more! <a href="http://make.wordpress.org/accessibility/wp-accessibility-plugin/">Read about the accessibility issues corrected</a> by WP Accessibility!
|
42 |
+
|
43 |
+
The plug-in is intended to help with deficiencies commonly found in themes and to solve some issues in WordPress core. It can't correct every problem (by a long shot), but provides tools to fix some issues, supplement the accessibility of your site, or identify problems.
|
44 |
|
45 |
Translating my plug-ins is always appreciated. Visit <a href="http://translate.joedolson.com">my translations site</a> to start getting your language into shape!
|
46 |
|
57 |
|
58 |
== Changelog ==
|
59 |
|
60 |
+
= 1.2.6 =
|
61 |
+
|
62 |
+
* Truly hides grayscale option, not dependent on CSS.
|
63 |
+
* Eliminates in-page anchor focusing, due to conflicts with plug-ins that attach scripts to links with hashes.
|
64 |
+
* Remove row action visibility from default admin stylesheet, due to 3.7 changes making those links keyboard accessible.
|
65 |
+
* Added row actions always visible option.
|
66 |
+
|
67 |
= 1.2.5 =
|
68 |
|
69 |
* Added Spanish translation.
|
toolbar/js/a11y.js
CHANGED
@@ -113,16 +113,17 @@ jQuery(document).ready(function($) {
|
|
113 |
}, 100);
|
114 |
}
|
115 |
|
116 |
-
// Focuses on the correct section of the page if we're page linking
|
117 |
// Thanks to WebAIM.org for this idea
|
118 |
// does not support 'name' targets
|
|
|
119 |
$('a[href^="#"]').click(function(event) {
|
120 |
var inPageAnchor = "#" + this.href.split('#')[1];
|
121 |
-
|
122 |
$(inPageAnchor).scrollTo({ duration: 1000 });
|
123 |
setTimeout(function() {
|
124 |
$(inPageAnchor).focus();
|
125 |
}, 100);
|
126 |
return false;
|
127 |
});
|
|
|
128 |
});
|
113 |
}, 100);
|
114 |
}
|
115 |
|
116 |
+
// Focuses on the correct section of the page if we're in-page linking
|
117 |
// Thanks to WebAIM.org for this idea
|
118 |
// does not support 'name' targets
|
119 |
+
/* Removed, because it conflicts with many other plug-ins.
|
120 |
$('a[href^="#"]').click(function(event) {
|
121 |
var inPageAnchor = "#" + this.href.split('#')[1];
|
|
|
122 |
$(inPageAnchor).scrollTo({ duration: 1000 });
|
123 |
setTimeout(function() {
|
124 |
$(inPageAnchor).focus();
|
125 |
}, 100);
|
126 |
return false;
|
127 |
});
|
128 |
+
*/
|
129 |
});
|
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.
|
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.
|
40 |
if ( get_option('wpa_installed') != 'true' ) {
|
41 |
add_option('rta_from_nav_menu', 'on');
|
42 |
add_option('rta_from_page_lists', 'on');
|
@@ -93,6 +93,15 @@ function wpa_admin_stylesheet() {
|
|
93 |
wp_register_style( 'wp-a11y-css', $file );
|
94 |
wp_enqueue_style( 'wp-a11y-css' );
|
95 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
}
|
97 |
function wpa_admin_js() {} // just a placeholder
|
98 |
|
@@ -170,8 +179,12 @@ echo
|
|
170 |
var insert_a11y_toolbar = '<!-- a11y toolbar -->';
|
171 |
insert_a11y_toolbar += '<div class=\"a11y-toolbar\">';
|
172 |
insert_a11y_toolbar += '<ul>';
|
173 |
-
insert_a11y_toolbar += '<li><a href=\"#\" class=\"a11y-toggle-contrast toggle-contrast\" id=\"is_normal_contrast\" title=\"$contrast\"><span class=\"offscreen\">$contrast</span><i class=\"icon icon-adjust\"></i></a></li>';
|
174 |
-
|
|
|
|
|
|
|
|
|
175 |
insert_a11y_toolbar += '<li><a href=\"#\" class=\"a11y-toggle-fontsize toggle-fontsize\" id=\"is_normal_fontsize\" title=\"$fontsize\"><span class=\"offscreen\">$fontsize</span><i class=\"icon icon-font\"></i></a></li>';
|
176 |
insert_a11y_toolbar += '</ul>';
|
177 |
insert_a11y_toolbar += '</div>';
|
@@ -199,10 +212,6 @@ function wpa_css() {
|
|
199 |
#skiplinks a:active, $vis #skiplinks a:focus { $focus }
|
200 |
";
|
201 |
}
|
202 |
-
$enable_grayscale = ( get_option('wpa_toolbar_gs') == 'on' )?true:false;
|
203 |
-
if ( get_option( 'wpa_toolbar' ) == 'on' && !$enable_grayscale ) {
|
204 |
-
$styles .= ".a11y-toolbar ul li:nth-child(2) { display: none; }";
|
205 |
-
}
|
206 |
if ( get_option( 'wpa_focus' ) == 'on' ) {
|
207 |
$color = ( get_option('wpa_focus_color') != '' )?" #".get_option('wpa_focus_color'):'';
|
208 |
$styles .= "
|
@@ -463,6 +472,7 @@ function wpa_update_settings() {
|
|
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 );
|
@@ -476,6 +486,7 @@ function wpa_update_settings() {
|
|
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>";
|
@@ -630,6 +641,7 @@ function wpa_admin_menu() { ?>
|
|
630 |
<li><input type="checkbox" id="wpa_search" name="wpa_search" <?php if ( get_option('wpa_search') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_search"><?php _e('Force search error on empty search submission (theme must have search.php template)','wp-accessibility'); ?></label></li>
|
631 |
<li><input type="checkbox" id="wpa_tabindex" name="wpa_tabindex" <?php if ( get_option('wpa_tabindex') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_tabindex"><?php _e('Remove tabindex from focusable elements','wp-accessibility'); ?></label></li>
|
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>
|
@@ -729,7 +741,7 @@ if ( $l_contrast ) {
|
|
729 |
</p>
|
730 |
<p><?php _e("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>.",'wp-accessibility'); ?></p>
|
731 |
<div>
|
732 |
-
<p><?php _e('<a href="http://www.joedolson.com/donate.php">Make a donation today!</a> Every donation counts - donate $
|
733 |
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
|
734 |
<div>
|
735 |
<input type="hidden" name="cmd" value="_s-xclick" />
|
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.6
|
7 |
Author: Joe Dolson
|
8 |
Author URI: http://www.joedolson.com/
|
9 |
|
36 |
|
37 |
// ACTIVATION
|
38 |
function wpa_install() {
|
39 |
+
$wpa_version = '1.2.6';
|
40 |
if ( get_option('wpa_installed') != 'true' ) {
|
41 |
add_option('rta_from_nav_menu', 'on');
|
42 |
add_option('rta_from_page_lists', 'on');
|
93 |
wp_register_style( 'wp-a11y-css', $file );
|
94 |
wp_enqueue_style( 'wp-a11y-css' );
|
95 |
}
|
96 |
+
if ( get_option( 'wpa_row_actions' ) == 'on' ) {
|
97 |
+
if ( file_exists( get_stylesheet_directory() . '/wp-admin-row-actions.css' ) ) {
|
98 |
+
$file = get_stylesheet_directory_uri() . '/wp-admin-row-actions.css';
|
99 |
+
} else {
|
100 |
+
$file = plugins_url('wp-admin-row-actions.css', __FILE__);
|
101 |
+
}
|
102 |
+
wp_register_style( 'wp-row-actions', $file );
|
103 |
+
wp_enqueue_style( 'wp-row-actions' );
|
104 |
+
}
|
105 |
}
|
106 |
function wpa_admin_js() {} // just a placeholder
|
107 |
|
179 |
var insert_a11y_toolbar = '<!-- a11y toolbar -->';
|
180 |
insert_a11y_toolbar += '<div class=\"a11y-toolbar\">';
|
181 |
insert_a11y_toolbar += '<ul>';
|
182 |
+
insert_a11y_toolbar += '<li><a href=\"#\" class=\"a11y-toggle-contrast toggle-contrast\" id=\"is_normal_contrast\" title=\"$contrast\"><span class=\"offscreen\">$contrast</span><i class=\"icon icon-adjust\"></i></a></li>';";
|
183 |
+
$enable_grayscale = ( get_option('wpa_toolbar_gs') == 'on' )?true:false;
|
184 |
+
if ( get_option( 'wpa_toolbar' ) == 'on' && $enable_grayscale ) {
|
185 |
+
echo "insert_a11y_toolbar += '<li><a href=\"#\" class=\"a11y-toggle-grayscale toggle-grayscale\" id=\"is_normal_color\" title=\"$grayscale\"><span class=\"offscreen\">$grayscale</span><i class=\"icon icon-tint\"></i></a></li>';";
|
186 |
+
}
|
187 |
+
echo "
|
188 |
insert_a11y_toolbar += '<li><a href=\"#\" class=\"a11y-toggle-fontsize toggle-fontsize\" id=\"is_normal_fontsize\" title=\"$fontsize\"><span class=\"offscreen\">$fontsize</span><i class=\"icon icon-font\"></i></a></li>';
|
189 |
insert_a11y_toolbar += '</ul>';
|
190 |
insert_a11y_toolbar += '</div>';
|
212 |
#skiplinks a:active, $vis #skiplinks a:focus { $focus }
|
213 |
";
|
214 |
}
|
|
|
|
|
|
|
|
|
215 |
if ( get_option( 'wpa_focus' ) == 'on' ) {
|
216 |
$color = ( get_option('wpa_focus_color') != '' )?" #".get_option('wpa_focus_color'):'';
|
217 |
$styles .= "
|
472 |
$wpa_toolbar = ( isset( $_POST['wpa_toolbar'] ) )?'on':'';
|
473 |
$wpa_toolbar_gs = ( isset( $_POST['wpa_toolbar_gs'] ) )?'on':'';
|
474 |
$wpa_admin_css = ( isset( $_POST['wpa_admin_css'] ) )?'on':'';
|
475 |
+
$wpa_row_actions = ( isset( $_POST['wpa_row_actions'] ) ) ? 'on' : '';
|
476 |
$wpa_diagnostics = ( isset( $_POST['wpa_diagnostics'] ) )?'on':'';
|
477 |
update_option('wpa_lang', $wpa_lang );
|
478 |
update_option('wpa_target', $wpa_target );
|
486 |
update_option('wpa_focus_color', $wpa_focus_color );
|
487 |
update_option('wpa_continue', $wpa_continue );
|
488 |
update_option('wpa_admin_css', $wpa_admin_css );
|
489 |
+
update_option( 'wpa_row_actions', $wpa_row_actions );
|
490 |
update_option('wpa_diagnostics', $wpa_diagnostics );
|
491 |
$message = __("Miscellaneous Accessibility Settings Updated",'wp-accessibility');
|
492 |
return "<div class='updated'><p>".$message."</p></div>";
|
641 |
<li><input type="checkbox" id="wpa_search" name="wpa_search" <?php if ( get_option('wpa_search') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_search"><?php _e('Force search error on empty search submission (theme must have search.php template)','wp-accessibility'); ?></label></li>
|
642 |
<li><input type="checkbox" id="wpa_tabindex" name="wpa_tabindex" <?php if ( get_option('wpa_tabindex') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_tabindex"><?php _e('Remove tabindex from focusable elements','wp-accessibility'); ?></label></li>
|
643 |
<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>
|
644 |
+
<li><input type="checkbox" id="wpa_row_actions" name="wpa_row_actions" <?php if ( get_option('wpa_row_actions') == "on") { echo 'checked="checked" '; } ?>/> <label for="wpa_row_actions"><?php _e('Make row actions always visible','wp-accessibility'); ?></label></li>
|
645 |
<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>
|
646 |
<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>
|
647 |
<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>
|
741 |
</p>
|
742 |
<p><?php _e("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>.",'wp-accessibility'); ?></p>
|
743 |
<div>
|
744 |
+
<p><?php _e('<a href="http://www.joedolson.com/donate.php">Make a donation today!</a> Every donation counts - donate $5, $20, or $100 and help me keep this plug-in running!','wp-to-twitter'); ?></p>
|
745 |
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
|
746 |
<div>
|
747 |
<input type="hidden" name="cmd" value="_s-xclick" />
|
wp-admin-row-actions.css
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
Make Row Actions permanently visible - provided by WP Accessibility / Joe Dolson
|
3 |
+
*/
|
4 |
+
.row-actions { visibility: visible;}
|
5 |
+
.row-actions a { opacity: .8; }
|
6 |
+
.row-actions a:hover, .row-actions a:focus { opacity: 1; }
|
wp-admin.css
CHANGED
@@ -2,11 +2,7 @@
|
|
2 |
|
3 |
Custom Stylesheet provided by WP Accessibility (http://www.joedolson.com/articles/wp-accessibility/)
|
4 |
|
5 |
-
*/
|
6 |
-
.row-actions { visibility: visible;}
|
7 |
-
.row-actions a { opacity: .8; }
|
8 |
-
.row-actions a:hover, .row-actions a:focus { opacity: 1; }
|
9 |
-
|
10 |
a:hover, a:active {
|
11 |
color: #d54e21;
|
12 |
text-decoration: underline!important;
|
2 |
|
3 |
Custom Stylesheet provided by WP Accessibility (http://www.joedolson.com/articles/wp-accessibility/)
|
4 |
|
5 |
+
*/
|
|
|
|
|
|
|
|
|
6 |
a:hover, a:active {
|
7 |
color: #d54e21;
|
8 |
text-decoration: underline!important;
|