WordPress.org

Make WordPress Core

Ticket #35566: 35566_4.patch

File 35566_4.patch, 4.6 KB (added by emirpprime, 2 years ago)
  • wp-includes/category-template.php

    From d79618bbd08a7936f11802b2227a7273022b6ee3 Mon Sep 17 00:00:00 2001
    From: Phil Banks <phil@helpfultechnology.com>
    Date: Mon, 13 Jun 2016 10:13:33 +0100
    Subject: [PATCH] Accessible tag cloud
    
    ---
     wp-includes/category-template.php                 | 35 +++++++++++++++++++----
     wp-includes/widgets/class-wp-widget-tag-cloud.php | 10 +++++--
     2 files changed, 37 insertions(+), 8 deletions(-)
    
    diff --git a/wp-includes/category-template.php b/wp-includes/category-template.php
    index 8bba6b4..888763d 100644
    a b function wp_generate_tag_cloud( $tags, $args = '' ) { 
    836836        } elseif ( ! empty( $args['topic_count_text_callback'] ) ) {
    837837                // Look for the alternative callback style. Ignore the previous default.
    838838                if ( $args['topic_count_text_callback'] === 'default_topic_count_text' ) {
    839                         $translate_nooped_plural = _n_noop( '%s topic', '%s topics' );
     839                        $translate_nooped_plural = _n_noop( '%s item', '%s items' );
    840840                } else {
    841841                        $translate_nooped_plural = false;
    842842                }
    function wp_generate_tag_cloud( $tags, $args = '' ) { 
    845845                $translate_nooped_plural = _n_noop( $args['single_text'], $args['multiple_text'] );
    846846        } else {
    847847                // This is the default for when no callback, plural, or argument is passed in.
    848                 $translate_nooped_plural = _n_noop( '%s topic', '%s topics' );
     848                $translate_nooped_plural = _n_noop( '%s item', '%s items' );
    849849        }
    850850
    851851        /**
    function wp_generate_tag_cloud( $tags, $args = '' ) { 
    921921                        'title'      => $title,
    922922                        'slug'       => $tag->slug,
    923923                        'real_count' => $real_count,
    924                         'class'      => 'tag-link-' . $tag_id,
     924                        'class'      => 'tag-cloud-link tag-link-' . $tag_id,
    925925                        'font_size'  => $args['smallest'] + ( $count - $min_count ) * $font_step,
    926926                );
    927927        }
    function wp_generate_tag_cloud( $tags, $args = '' ) { 
    937937
    938938        $a = array();
    939939
    940         // generate the output links array
    941         foreach ( $tags_data as $key => $tag_data ) {
     940        // Generate the output links array.
     941        if ( 0 == $args['largest'] - $args['smallest'] ) {
     942                // No visual sizing or screen reader count needed.
     943                foreach ( $tags_data as $key => $tag_data ) {
    942944                $class = $tag_data['class'] . ' tag-link-position-' . ( $key + 1 );
    943                 $a[] = "<a href='" . esc_url( $tag_data['url'] ) . "' class='" . esc_attr( $class ) . "' title='" . esc_attr( $tag_data['title'] ) . "' style='font-size: " . esc_attr( str_replace( ',', '.', $tag_data['font_size'] ) . $args['unit'] ) . ";'>" . esc_html( $tag_data['name'] ) . "</a>";
     945                        $a[] = "<a href='" . esc_url( $tag_data['url'] ) . "' class='" . esc_attr( $class ) . "'>" . esc_html( $tag_data['name'] ) . "</a>";
     946                }
     947        } else {
     948                foreach ( $tags_data as $key => $tag_data ) {
     949                $class = $tag_data['class'] . ' tag-link-position-' . ( $key + 1 );
     950                        $a[] = "<a href='" . esc_url( $tag_data['url'] ) . "' class='" . esc_attr( $class ) . "' aria-label='" . esc_attr( $tag_data['name'] . " (" . $tag_data['title'] ) . ")' style='font-size: " . esc_attr( str_replace( ',', '.', $tag_data['font_size'] ) . $args['unit'] ) . ";'>" . esc_html( $tag_data['name'] ) . "</a>";
     951                }
    944952        }
    945953
     954
     955
    946956        switch ( $args['format'] ) {
    947957                case 'array' :
    948958                        $return =& $a;
    function wp_generate_tag_cloud( $tags, $args = '' ) { 
    957967                        break;
    958968        }
    959969
     970        $accessibility_styles = '<style>
     971                ul.wp-tag-cloud {
     972                        list-style: none;
     973                        margin: 0;
     974                        padding: 0;
     975                }
     976                ul.wp-tag-cloud li {
     977                        display: inline-block;
     978                        position: relative;
     979                }
     980        </style>';
     981        $return = $accessibility_styles . $return;
     982
    960983        if ( $args['filter'] ) {
    961984                /**
    962985                 * Filters the generated output of a tag cloud.
  • wp-includes/widgets/class-wp-widget-tag-cloud.php

    diff --git a/wp-includes/widgets/class-wp-widget-tag-cloud.php b/wp-includes/widgets/class-wp-widget-tag-cloud.php
    index ae0832a..21579b0 100644
    a b class WP_Widget_Tag_Cloud extends WP_Widget { 
    5353                        }
    5454                }
    5555
     56                $ariaLabel = $title . ' ' . __('list');
     57
    5658                /**
    5759                 * Filters the taxonomy used in the Tag Cloud widget.
    5860                 *
    class WP_Widget_Tag_Cloud extends WP_Widget { 
    6567                 */
    6668                $tag_cloud = wp_tag_cloud( apply_filters( 'widget_tag_cloud_args', array(
    6769                        'taxonomy' => $current_taxonomy,
    68                         'echo' => false
     70                        'echo' => false,
     71                        'smallest' => 1,
     72                        'largest' => 3,
     73                        'unit' => 'em',
     74                        'format' => 'list',
    6975                ) ) );
    7076
    7177                if ( empty( $tag_cloud ) ) {
    class WP_Widget_Tag_Cloud extends WP_Widget { 
    8086                        echo $args['before_title'] . $title . $args['after_title'];
    8187                }
    8288
    83                 echo '<div class="tagcloud">';
     89                echo '<div class="tagcloud" aria-label="' . $ariaLabel . '">';
    8490
    8591                echo $tag_cloud;
    8692