Make WordPress Core


Ignore:
Timestamp:
10/07/2015 01:27:01 AM (11 years ago)
Author:
wonderboymusic
Message:

List Tables/WP_Screen: in WP_Screen, add methods to store, retrieve, and render screen reader text, primarily used by list table screens.

These additions are based on an audit and recommendations by the Accessibility team. #a11y'all

Props afercia.
Fixes #32147.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/class-wp-screen.php

    r34422 r34891  
    142142         */
    143143        private $_help_sidebar = '';
     144
     145        /**
     146         * The accessible hidden headings and text associated with the screen, if any.
     147         *
     148         * @since 4.4.0
     149         * @access private
     150         * @var array
     151         */
     152        private $_screen_reader_content = array();
    144153
    145154        /**
    … …  
    643652        public function get_columns() {
    644653                return $this->columns;
     654        }
     655
     656        /**
     657         * Get the accessible hidden headings and text used in the screen.
     658         *
     659         * @since 4.4.0
     660         *
     661         * @see set_screen_reader_content() For more information on the array format.
     662         *
     663         * @return array An associative array of screen reader text strings.
     664         */
     665        public function get_screen_reader_content() {
     666                return $this->_screen_reader_content;
     667        }
     668
     669        /**
     670         * Get a screen reader text string.
     671         *
     672         * @since 4.4.0
     673         *
     674         * @param string $key Screen reader text array named key.
     675         * @return string Screen reader text string.
     676         */
     677        public function get_screen_reader_text( $key ) {
     678                if ( ! isset( $this->_screen_reader_content[ $key ] ) ) {
     679                        return null;
     680                }
     681                return $this->_screen_reader_content[ $key ];
     682        }
     683
     684        /**
     685         * Add accessible hidden headings and text for the screen.
     686         *
     687         * @since 4.4.0
     688         *
     689         * @param array $content {
     690         *     An associative array of screen reader text strings.
     691         *
     692         *     @type string $heading_views      Screen reader text for the filter links heading.
     693         *                                      Default 'Filter items list'.
     694         *     @type string $heading_pagination Screen reader text for the pagination heading.
     695         *                                      Default 'Items list navigation'.
     696         *     @type string heading_list        Screen reader text for the items list heading.
     697         *                                      Default 'Items list'.
     698         * }
     699         */
     700        public function set_screen_reader_content( $content = array() ) {
     701                $defaults = array(
     702                        'heading_views'      => __( 'Filter items list' ),
     703                        'heading_pagination' => __( 'Items list navigation' ),
     704                        'heading_list'       => __( 'Items list' ),
     705                );
     706                $content = wp_parse_args( $content, $defaults );
     707
     708                $this->_screen_reader_content = $content;
     709        }
     710
     711        /**
     712         * Remove all the accessible hidden headings and text for the screen.
     713         *
     714         * @since 4.4.0
     715         */
     716        public function remove_screen_reader_content() {
     717                $this->_screen_reader_content = array();
    645718        }
    646719
    … …  
    10651138                <?php
    10661139        }
     1140
     1141        /**
     1142         * Render screen reader text.
     1143         *
     1144         * @since 4.4.0
     1145         *
     1146         * @param string $key The screen reader text array named key.
     1147         * @param string $tag Optional. The HTML tag to wrap the screen reader text. Default h2.
     1148         */
     1149        public function render_screen_reader_content( $key = '', $tag = 'h2' ) {
     1150
     1151                if ( ! isset( $this->_screen_reader_content[ $key ] ) ) {
     1152                        return;
     1153                }
     1154                echo "<$tag class='screen-reader-text'>" . $this->_screen_reader_content[ $key ] . "</$tag>";
     1155        }
    10671156}
Note: See TracChangeset for help on using the changeset viewer.