WordPress.org

Make WordPress Core

Ticket #35566: 35566.patch

File 35566.patch, 4.2 KB (added by emirpprime, 22 months 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