From ca2b3fd52842e24a8d05035653012850450a8c44 Mon Sep 17 00:00:00 2001 From: ayush-chauhan233 Date: Fri, 24 Jan 2025 23:20:48 +0530 Subject: [PATCH] [MM-61646]: Added logic to correctly give accessible name to channel header button (#29788) * [MA-32]: Added logic to correctly give accessible name to channel header button * [MA-32]: Fixed id name * [MA-32]: Fixed failing e2e test case * [MA-32]: Updated the aria-label attribute --- .../channel/channel_header_modal_spec.js | 2 +- .../channel_header/channel_header_title.tsx | 26 +++++++++++++++++-- .../channel_header_dropdown.tsx | 12 ++++----- .../menu/menu_items/menu_item_action.tsx | 3 --- webapp/channels/src/i18n/en.json | 2 ++ 5 files changed, 32 insertions(+), 13 deletions(-) diff --git a/e2e-tests/cypress/tests/integration/channels/channel/channel_header_modal_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/channel_header_modal_spec.js index 2cc5c74a8c..e77b63beab 100644 --- a/e2e-tests/cypress/tests/integration/channels/channel/channel_header_modal_spec.js +++ b/e2e-tests/cypress/tests/integration/channels/channel/channel_header_modal_spec.js @@ -30,7 +30,7 @@ describe('Channel Settings - Channel Header', () => { cy.visit(`/${testTeam.name}/channels/${channel.name}`); // # Click on the channel name in the channel header to open the channel menu options - cy.get('[aria-label="channel menu"]').click(); + cy.get(`[aria-label="${channel.name.split('-').join(' ')} channel menu"]`).click(); // # Select the "Edit Channel Header" option from the dropdown cy.findByText('Edit Channel Header').click(); diff --git a/webapp/channels/src/components/channel_header/channel_header_title.tsx b/webapp/channels/src/components/channel_header/channel_header_title.tsx index 35538e2669..9e2b303cb4 100644 --- a/webapp/channels/src/components/channel_header/channel_header_title.tsx +++ b/webapp/channels/src/components/channel_header/channel_header_title.tsx @@ -11,6 +11,7 @@ import type {UserProfile} from '@mattermost/types/users'; import {Client4} from 'mattermost-redux/client'; import {getCurrentChannel} from 'mattermost-redux/selectors/entities/channels'; +import {getCurrentUser} from 'mattermost-redux/selectors/entities/users'; import {getIsRhsOpen} from 'selectors/rhs'; @@ -41,6 +42,7 @@ const ChannelHeaderTitle = ({ const [showTooltip, setShowTooltip] = useState(false); const intl = useIntl(); const channel = useSelector(getCurrentChannel); + const currentUser = useSelector(getCurrentUser); const headerItemRef = useRef(null); const isRHSOpen = useSelector(getIsRhsOpen); @@ -118,6 +120,20 @@ const ChannelHeaderTitle = ({ ); } + const personalChannelHeaderAriaLabel = intl.formatMessage({ + id: 'channel_header.directchannel', + defaultMessage: '{displayName} (you) Channel Menu', + }, { + displayName: channel.display_name, + }); + + const othersChannelHeaderAriaLabel = intl.formatMessage({ + id: 'channel_header.otherchannel', + defaultMessage: '{displayName} Channel Menu', + }, { + displayName: channel.display_name, + }); + return (
@@ -142,7 +158,9 @@ const ChannelHeaderTitle = ({
- + ); diff --git a/webapp/channels/src/components/channel_header_dropdown/channel_header_dropdown.tsx b/webapp/channels/src/components/channel_header_dropdown/channel_header_dropdown.tsx index f156e1c2c3..7312f13415 100644 --- a/webapp/channels/src/components/channel_header_dropdown/channel_header_dropdown.tsx +++ b/webapp/channels/src/components/channel_header_dropdown/channel_header_dropdown.tsx @@ -2,22 +2,20 @@ // See LICENSE.txt for license information. import React, {memo} from 'react'; -import {useIntl} from 'react-intl'; import {ChannelHeaderDropdownItems} from 'components/channel_header_dropdown'; import Menu from 'components/widgets/menu/menu'; -const ChannelHeaderDropdown = () => { - const intl = useIntl(); - - return ( +const ChannelHeaderDropdown = ({ariaLabel}: { + ariaLabel: string; +}) => + ( ); -}; export default memo(ChannelHeaderDropdown); diff --git a/webapp/channels/src/components/widgets/menu/menu_items/menu_item_action.tsx b/webapp/channels/src/components/widgets/menu/menu_items/menu_item_action.tsx index 25c8c3390e..efc89527da 100644 --- a/webapp/channels/src/components/widgets/menu/menu_items/menu_item_action.tsx +++ b/webapp/channels/src/components/widgets/menu/menu_items/menu_item_action.tsx @@ -8,7 +8,6 @@ import menuItem from './menu_item'; type Props = { onClick: (e: React.MouseEvent) => void; - ariaLabel?: string; text: React.ReactNode; extraText?: string; id?: string; @@ -21,7 +20,6 @@ type Props = { } export const MenuItemActionImpl = ({ onClick, - ariaLabel, text, extraText, id, @@ -36,7 +34,6 @@ export const MenuItemActionImpl = ({