WordPress.org

Make WordPress Core

Ticket #35566: 35566.patch

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

    From b4dedc8cb68fcb95c560328b2d0f60f9828103b1 Mon Sep 17 00:00:00 2001
    From: Phil Banks <phil@helpfultechnology.com>
    Date: Sun, 10 Apr 2016 12:59:51 +0100
    Subject: [PATCH] Make Tag Cloud Widget accessible
    
    ---
     wp-includes/category-template.php                 | 50 ++++++++++++++++++++++-
     wp-includes/widgets/class-wp-widget-tag-cloud.php | 10 ++++-
     2 files changed, 56 insertions(+), 4 deletions(-)
    
    diff --git a/wp-includes/category-template.php b/wp-includes/category-template.php
    index 35d6c82..f2e0e51 100644
    a b function wp_generate_tag_cloud( $tags, $args = '' ) { 
    896896                        'title'      => $title,
    897897                        'slug'       => $tag->slug,
    898898                        'real_count' => $real_count,
    899                         'class'      => 'tag-link-' . $tag_id,
     899                        'class'      => 'tag-cloud-link tag-link-' . $tag_id,
    900900                        'font_size'  => $args['smallest'] + ( $count - $min_count ) * $font_step,
    901901                );
    902902        }
    function wp_generate_tag_cloud( $tags, $args = '' ) { 
    915915        // generate the output links array
    916916        foreach ( $tags_data as $key => $tag_data ) {
    917917                $class = $tag_data['class'] . ' tag-link-position-' . ( $key + 1 );
    918                 $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>";
     918                $a[] = "<a href='" . esc_url( $tag_data['url'] ) . "' class='" . esc_attr( $class ) . "'><span style='font-size: " . esc_attr( str_replace( ',', '.', $tag_data['font_size'] ) . $args['unit'] ) . ";'>" . esc_html( $tag_data['name'] ) . "</span>\n<span class='screen-reader-text'>" . esc_attr( $tag_data['title'] ) . "</span></a>";
    919919        }
    920920
    921921        switch ( $args['format'] ) {
    function wp_generate_tag_cloud( $tags, $args = '' ) { 
    932932                        break;
    933933        }
    934934
     935        $accessibilityStyles = '<style>
     936                        ul.wp-tag-cloud {
     937                                list-style: none;
     938                                margin: 0;
     939                                padding: 0;
     940                        }
     941                        ul.wp-tag-cloud li {
     942                                display: inline-block;
     943                                position: relative;
     944                        }
     945                        .tag-cloud-link {
     946                                position:relative;
     947                        }
     948                        .tag-cloud-link .screen-reader-text {
     949                            clip:     rect( 1px, 1px, 1px, 1px );
     950                            position: absolute !important;
     951                            height:   1px;
     952                            width:    1px;
     953                            overflow: hidden;
     954                            font-size: 0.8em;
     955                            background:    #eee;
     956                            color:         black;
     957                            border-radius: 3px;
     958                            border:        1px solid #ddd;
     959                            padding:       0.3em;
     960                            line-height:   1;
     961                            z-index:       99;
     962                            opacity:       0;
     963                            transition:    0.5s ease-in-out opacity;
     964                        }
     965                        a:focus.tag-cloud-link .screen-reader-text,
     966                        a:hover.tag-cloud-link .screen-reader-text {
     967                            clip:        auto !important;
     968                            display:     block;
     969                            height:      auto;
     970                            left:        0;
     971                            top:         100%;
     972                            width:       auto;
     973                            white-space: nowrap;
     974                            left:        50%;
     975                            transform:   translateX( -50% );
     976                            opacity:     1;
     977                        }
     978                        </style>';
     979        $return = $accessibilityStyles . $return;
     980
    935981        if ( $args['filter'] ) {
    936982                /**
    937983                 * Filter 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 1251e1d..f498966 100644
    a b class WP_Widget_Tag_Cloud extends WP_Widget { 
    5353                        }
    5454                }
    5555
     56                $ariaLabel = $title . ' ' . __('list');
     57
    5658                /**
    5759                 * Filter 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' => 'flat',
    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