Make WordPress Core

Changeset 35605


Ignore:
Timestamp:
11/11/2015 12:23:15 AM (11 years ago)
Author:
afercia
Message:

Accessibility: improvements for the taxonomies Quick Edit form.

Changes the "Cancel" and "Update" controls in buttons for better semantics and
accessibility. On cancel and successful saving, moves focus back to the term title
to avoid a focus loss. Dispatches error and success messages to wp.a11y.speak
to give assistive technologies users an audible feedback.

Patch prepared at #wpcdit, first Italian WordPress Contributor Day.

Props garusky, chiara_09.
Fixes #34613.

Location:
trunk/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/class-wp-terms-list-table.php

    r35241 r35605  
    589589
    590590                <p class="inline-edit-save submit">
    591                         <a href="#inline-edit" class="cancel button-secondary alignleft"><?php _e( 'Cancel' ); ?></a>
    592                         <a href="#inline-edit" class="save button-primary alignright"><?php echo $tax->labels->update_item; ?></a>
     591                        <button type="button" class="cancel button-secondary alignleft"><?php _e( 'Cancel' ); ?></button>
     592                        <button type="button" class="save button-primary alignright"><?php echo $tax->labels->update_item; ?></button>
    593593                        <span class="spinner"></span>
    594594                        <span class="error" style="display:none;"></span>
  • trunk/src/wp-admin/js/inline-edit-tax.js

    r33015 r35605  
    11/* global inlineEditL10n, ajaxurl */
     2window.wp = window.wp || {};
    23
    34var inlineEditTax;
    4 (function($) {
     5( function( $, wp ) {
    56inlineEditTax = {
    67
    … …  
    2324                });
    2425
    25                 $( 'a.cancel', row ).click( function() {
     26                $( '.cancel', row ).click( function() {
    2627                        return inlineEditTax.revert();
    2728                });
    28                 $( 'a.save', row ).click( function() {
     29                $( '.save', row ).click( function() {
    2930                        return inlineEditTax.save(this);
    3031                });
    … …  
    9798                $.post( ajaxurl, params,
    9899                        function(r) {
    99                                 var row, new_id, option_value;
     100                                var row, new_id, option_value,
     101                                        $errorSpan = $( '#edit-' + id + ' .inline-edit-save .error' );
     102
    100103                                $( 'table.widefat .spinner' ).removeClass( 'is-active' );
    101104
    … …  
    118121                                                $( '#parent' ).find( 'option[value=' + option_value + ']' ).text( row.find( '.row-title' ).text() );
    119122
    120                                                 row.hide().fadeIn();
     123                                                row.hide().fadeIn( 400, function() {
     124                                                        // Move focus back to the taxonomy title.
     125                                                        row.find( '.row-title' ).focus();
     126                                                        wp.a11y.speak( inlineEditL10n.saved );
     127                                                });
     128
    121129                                        } else {
    122                                                 $('#edit-'+id+' .inline-edit-save .error').html(r).show();
     130                                                $errorSpan.html( r ).show();
     131                                                // Some error strings may contain HTML entities (e.g. `&#8220`), let's use the HTML element's text.
     132                                                wp.a11y.speak( $errorSpan.text() );
    123133                                        }
    124134                                } else {
    125                                         $('#edit-'+id+' .inline-edit-save .error').html(inlineEditL10n.error).show();
     135                                        $errorSpan.html( inlineEditL10n.error ).show();
     136                                        wp.a11y.speak( inlineEditL10n.error );
    126137                                }
    127138                        }
    128139                );
    129                 return false;
    130140        },
    131141
    … …  
    137147                        $('#'+id).siblings('tr.hidden').addBack().remove();
    138148                        id = id.substr( id.lastIndexOf('-') + 1 );
    139                         $(this.what+id).show();
     149                        // Show the taxonomy listing and move focus back to the taxonomy title.
     150                        $( this.what + id ).show().find( '.row-title' ).focus();
    140151                }
    141 
    142                 return false;
    143152        },
    144153
    … …  
    150159
    151160$(document).ready(function(){inlineEditTax.init();});
    152 })(jQuery);
     161})( jQuery, window.wp );
  • trunk/src/wp-includes/script-loader.php

    r35466 r35605  
    563563                ) );
    564564
    565                 $scripts->add( 'inline-edit-tax', "/wp-admin/js/inline-edit-tax$suffix.js", array( 'jquery' ), false, 1 );
     565                $scripts->add( 'inline-edit-tax', "/wp-admin/js/inline-edit-tax$suffix.js", array( 'jquery', 'wp-a11y' ), false, 1 );
    566566                did_action( 'init' ) && $scripts->localize( 'inline-edit-tax', 'inlineEditL10n', array(
    567                         'error' => __('Error while saving the changes.')
     567                        'error' => __( 'Error while saving the changes.' ),
     568                        'saved' => __( 'Changes saved.' ),
    568569                ) );
    569570
Note: See TracChangeset for help on using the changeset viewer.