diff --git a/output/Html.php b/output/Html.php index d1daa7173..68909d596 100644 --- a/output/Html.php +++ b/output/Html.php @@ -387,11 +387,24 @@ protected function build_sorter( $heading = '' ) { /** * Returns a toggle control. Safe for output. * + * @param string $context Optional. Information to uniquely label the toggle button for screen readers. * @return string Markup for the column sorter controls. */ - protected static function build_toggler() { - $out = ''; - return $out; + protected static function build_toggler( $context = '' ) { + if ( $context !== '' ) { + $label = sprintf( + /* translators: Context about what this button toggles */ + __( 'Toggle more information for %s', 'query-monitor' ), + wp_strip_all_tags( $context ) + ); + } else { + $label = __( 'Toggle more information', 'query-monitor' ); + } + + return sprintf( + '', + esc_attr( $label ) + ); } /** diff --git a/output/html/block_editor.php b/output/html/block_editor.php index 1b48c52e5..76acc1e81 100644 --- a/output/html/block_editor.php +++ b/output/html/block_editor.php @@ -256,7 +256,7 @@ protected static function render_block( $i, array $block, QM_Data_Block_Editor $ echo ''; } else { echo ''; - echo self::build_toggler(); // WPCS: XSS ok; + echo self::build_toggler( $block['callback']['name'] ); // WPCS: XSS ok; echo '
    '; echo '
  1. '; echo self::output_filename( $block['callback']['name'], $block['callback']['file'], $block['callback']['line'] ); // WPCS: XSS ok. @@ -298,10 +298,11 @@ protected static function render_block( $i, array $block, QM_Data_Block_Editor $ $inner_html = $block['innerHTML']; if ( $block['size'] > 300 ) { + $sub_string = substr( $inner_html, 0, 200 ); echo ''; - echo self::build_toggler(); // WPCS: XSS ok; + echo self::build_toggler( $sub_string ); // WPCS: XSS ok; echo '
    ';
    -			echo esc_html( substr( $inner_html, 0, 200 ) ) . ' …';
    +			echo esc_html( $sub_string ) . ' …';
     			echo '
    '; echo '
    ';
     			echo esc_html( $inner_html );
    diff --git a/output/html/caps.php b/output/html/caps.php
    index c5cc06cb3..f034cb922 100644
    --- a/output/html/caps.php
    +++ b/output/html/caps.php
    @@ -162,7 +162,7 @@ public function output() {
     				echo '';
     
     				if ( ! empty( $stack ) ) {
    -					echo self::build_toggler(); // WPCS: XSS ok;
    +					echo self::build_toggler( $caller ); // WPCS: XSS ok;
     				}
     
     				echo '
      '; diff --git a/output/html/db_queries.php b/output/html/db_queries.php index d464b5248..2f4aca2f2 100644 --- a/output/html/db_queries.php +++ b/output/html/db_queries.php @@ -433,7 +433,7 @@ protected function output_query_row( array $row, array $cols ) { echo ''; if ( ! empty( $stack ) ) { - echo self::build_toggler(); // WPCS: XSS ok; + echo self::build_toggler( $caller_name ); // WPCS: XSS ok; } echo '
        '; diff --git a/output/html/environment.php b/output/html/environment.php index a08363043..c1720476b 100644 --- a/output/html/environment.php +++ b/output/html/environment.php @@ -112,7 +112,7 @@ public function output() { echo ''; echo esc_html( (string) $data->php['error_reporting'] ); - echo self::build_toggler(); // WPCS: XSS ok; + echo self::build_toggler( __( 'Error Reporting', 'query-monitor' ) ); // WPCS: XSS ok; echo '
        '; echo "
        • {$error_levels}
        "; // WPCS: XSS ok. @@ -129,7 +129,7 @@ public function output() { printf( // WPCS: XSS ok. '
        %1$s %2$s
        ', esc_html( number_format_i18n( count( $data->php['extensions'] ) ) ), - self::build_toggler() + self::build_toggler( __( 'Extensions', 'query-monitor' ) ) ); echo '
        '; diff --git a/output/html/hooks.php b/output/html/hooks.php index 769c69e61..4b6a1a6e7 100644 --- a/output/html/hooks.php +++ b/output/html/hooks.php @@ -163,7 +163,7 @@ public static function output_hook_table( array $hooks ) { echo ''; } else { echo ''; - echo self::build_toggler(); // WPCS: XSS ok; + echo self::build_toggler( $action['callback']['name'] ); // WPCS: XSS ok; echo '
          '; echo '
        1. '; echo self::output_filename( $action['callback']['name'], $action['callback']['file'], $action['callback']['line'] ); // WPCS: XSS ok. diff --git a/output/html/http.php b/output/html/http.php index fce8fe380..c56268075 100644 --- a/output/html/http.php +++ b/output/html/http.php @@ -185,7 +185,9 @@ public function output() { echo esc_html( $response ); if ( $show_toggle ) { - echo self::build_toggler(); // WPCS: XSS ok; + // translators: 1) HTTP query method, 2) queried URL, 3) HTTP response. + $context = sprintf( __( '%1$s to %2$s with status %3$s', 'query-monitor' ), $row['args']['method'], $url, $response ); + echo self::build_toggler( $context ); // WPCS: XSS ok; echo '
            '; } @@ -245,7 +247,7 @@ public function output() { echo ''; if ( ! empty( $stack ) ) { - echo self::build_toggler(); // WPCS: XSS ok; + echo self::build_toggler( $caller ); // WPCS: XSS ok; } echo '
              '; diff --git a/output/html/languages.php b/output/html/languages.php index 34baf85ba..1b785e098 100644 --- a/output/html/languages.php +++ b/output/html/languages.php @@ -117,7 +117,7 @@ public function output() { echo ''; } else { echo ''; - echo self::build_toggler(); // WPCS: XSS ok; + echo self::build_toggler( $mofile['caller']['display'] ); // WPCS: XSS ok; echo '
                '; echo '
              1. '; // undefined: diff --git a/output/html/logger.php b/output/html/logger.php index 727d006a2..9e0cdfa8e 100644 --- a/output/html/logger.php +++ b/output/html/logger.php @@ -145,7 +145,7 @@ public function output() { echo ''; if ( ! empty( $stack ) ) { - echo self::build_toggler(); // WPCS: XSS ok; + echo self::build_toggler( $caller ); // WPCS: XSS ok; } echo '
                  '; diff --git a/output/html/multisite.php b/output/html/multisite.php index 7163e6c0e..4088d1a14 100644 --- a/output/html/multisite.php +++ b/output/html/multisite.php @@ -122,7 +122,7 @@ public function output() { echo ''; if ( ! empty( $stack ) ) { - echo self::build_toggler(); // WPCS: XSS ok; + echo self::build_toggler( $caller ); // WPCS: XSS ok; } echo '
                    '; diff --git a/output/html/php_errors.php b/output/html/php_errors.php index f119d5468..4068243f2 100644 --- a/output/html/php_errors.php +++ b/output/html/php_errors.php @@ -147,7 +147,7 @@ public function output() { echo ''; if ( ! empty( $stack ) ) { - echo self::build_toggler(); // WPCS: XSS ok; + echo self::build_toggler( $error['filename'] ); // WPCS: XSS ok; } echo '
                      '; diff --git a/output/html/timing.php b/output/html/timing.php index 04faa8a95..1a53c819e 100644 --- a/output/html/timing.php +++ b/output/html/timing.php @@ -82,7 +82,7 @@ public function output() { echo ''; } else { echo ''; - echo self::build_toggler(); // WPCS: XSS ok; + echo self::build_toggler( $row['function'] ); // WPCS: XSS ok; echo '
                        '; echo '
                      1. '; echo $file; // WPCS: XSS ok. @@ -167,7 +167,7 @@ public function output() { echo ''; } else { echo ''; - echo self::build_toggler(); // WPCS: XSS ok; + echo self::build_toggler( $row['function'] ); // WPCS: XSS ok; echo '
                          '; echo '
                        1. '; echo $file; // WPCS: XSS ok. diff --git a/output/html/transients.php b/output/html/transients.php index 072fd2f00..4a5559039 100644 --- a/output/html/transients.php +++ b/output/html/transients.php @@ -100,7 +100,7 @@ public function output() { echo ''; if ( ! empty( $stack ) ) { - echo self::build_toggler(); // WPCS: XSS ok; + echo self::build_toggler( $caller ); // WPCS: XSS ok; } echo '
                            ';