diff --git a/packages/components/src/custom-select-control/README.md b/packages/components/src/custom-select-control/README.md index 893bb2fc369cf2..9cf8943c332107 100644 --- a/packages/components/src/custom-select-control/README.md +++ b/packages/components/src/custom-select-control/README.md @@ -93,6 +93,13 @@ The label for the control. - Type: `String` - Required: Yes +#### describedBy + +Pass in a description that will be shown to screen readers associated with the select trigger button. If no value is passed, the text "Currently selected: selectedItem.name" will be used fully translated. + +- Type: `String` +- Required: No + #### options The options that can be chosen from. diff --git a/packages/components/src/custom-select-control/index.js b/packages/components/src/custom-select-control/index.js index dbe1dcb38b1de7..c78c7f715e8689 100644 --- a/packages/components/src/custom-select-control/index.js +++ b/packages/components/src/custom-select-control/index.js @@ -8,6 +8,7 @@ import classnames from 'classnames'; * WordPress dependencies */ import { Icon, check, chevronDown } from '@wordpress/icons'; +import { __, sprintf } from '@wordpress/i18n'; /** * Internal dependencies */ @@ -56,6 +57,7 @@ export default function CustomSelectControl( { className, hideLabelFromVision, label, + describedBy, options: items, onChange: onSelectedItemChange, value: _selectedItem, @@ -77,6 +79,11 @@ export default function CustomSelectControl( { stateReducer, } ); + const controlDescribedBy = describedBy + ? describedBy + : // translators: %s: The selected option. + sprintf( __( 'Currently selected: %s' ), selectedItem.name ); + const menuProps = getMenuProps( { className: 'components-custom-select-control__menu', 'aria-hidden': ! isOpen, @@ -120,6 +127,7 @@ export default function CustomSelectControl( { 'aria-labelledby': undefined, className: 'components-custom-select-control__button', isSmall: true, + describedBy: controlDescribedBy, } ) } > { itemToString( selectedItem ) } diff --git a/packages/components/src/font-size-picker/index.js b/packages/components/src/font-size-picker/index.js index 6f6f2a0d137a58..65a85f31f58464 100644 --- a/packages/components/src/font-size-picker/index.js +++ b/packages/components/src/font-size-picker/index.js @@ -6,7 +6,7 @@ import { isNumber, isString } from 'lodash'; /** * WordPress dependencies */ -import { __ } from '@wordpress/i18n'; +import { __, sprintf } from '@wordpress/i18n'; import { textColor } from '@wordpress/icons'; import { useMemo, forwardRef } from '@wordpress/element'; @@ -92,6 +92,12 @@ function FontSizePicker( const selectedFontSizeSlug = getSelectValueFromFontSize( fontSizes, value ); + const currentFontSizeSR = sprintf( + // translators: %s: Currently selected font size. + __( 'Currently selected font size: %s' ), + options.find( ( option ) => option.key === selectedFontSizeSlug ).name + ); + return (