PluginProbe
Gutenberg / 23.7.2
Gutenberg v23.7.2
23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 7.4.0 All 402 releases
gutenberg / lib / block-supports / aria-label.php

aria-label.php in Gutenberg 23.7.2, at lib/block-supports/aria-label.php

67 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Aria label block support flag.
4 *
5 * @package gutenberg
6 */
7
8 /**
9 * Registers the aria-label block attribute for block types that support it.
10 *
11 * @param WP_Block_Type $block_type Block Type.
12 */
13 function gutenberg_register_aria_label_support( $block_type ) {
14 $has_aria_label_support = block_has_support( $block_type, array( 'ariaLabel' ), false );
15
16 if ( ! $has_aria_label_support ) {
17 return;
18 }
19
20 if ( ! $block_type->attributes ) {
21 $block_type->attributes = array();
22 }
23
24 if ( ! array_key_exists( 'ariaLabel', $block_type->attributes ) ) {
25 $block_type->attributes['ariaLabel'] = array(
26 'type' => 'string',
27 );
28 }
29 }
30
31 /**
32 * Add the aria-label to the output.
33 *
34 * @param WP_Block_Type $block_type Block Type.
35 * @param array $block_attributes Block attributes.
36 *
37 * @return array Block aria-label.
38 */
39 function gutenberg_apply_aria_label_support( $block_type, $block_attributes ) {
40 if ( ! $block_attributes ) {
41 return array();
42 }
43
44 $has_aria_label_support = block_has_support( $block_type, array( 'ariaLabel' ), false );
45 if (
46 ! $has_aria_label_support ||
47 wp_should_skip_block_supports_serialization( $block_type, 'ariaLabel' )
48 ) {
49 return array();
50 }
51
52 $has_aria_label = array_key_exists( 'ariaLabel', $block_attributes );
53 if ( ! $has_aria_label ) {
54 return array();
55 }
56 return array( 'aria-label' => $block_attributes['ariaLabel'] );
57 }
58
59 // Register the block support.
60 WP_Block_Supports::get_instance()->register(
61 'aria-label',
62 array(
63 'register_attribute' => 'gutenberg_register_aria_label_support',
64 'apply' => 'gutenberg_apply_aria_label_support',
65 )
66 );
67