diff --git a/CHANGELOG.md b/CHANGELOG.md index 3304cea8fe..afffdb9420 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -50,6 +50,7 @@ Legends: ### Fixed +- Fixed screen readers repeating the full bot response when focus enters message actions such as Copy, Like, or Dislike, resolving [#5849](https://github.com/microsoft/BotFramework-WebChat/issues/5849), by [@asalsa](https://github.com/asalsa) - Fixed an error when a failed activity is present when Web Chat mounts, resolving [#5812](https://github.com/microsoft/BotFramework-WebChat/issues/5812), in PR [#5848](https://github.com/microsoft/BotFramework-WebChat/pull/5848), by [@OEvgeny](https://github.com/OEvgeny) ## [4.19.1] - 2026-06-09 diff --git a/__tests__/html2/accessibility/messageActions.html b/__tests__/html2/accessibility/messageActions.html new file mode 100644 index 0000000000..094c8f84ca --- /dev/null +++ b/__tests__/html2/accessibility/messageActions.html @@ -0,0 +1,145 @@ + + + + + + + + + + + + + +
+ + + diff --git a/packages/component/src/Activity/StackedLayout.tsx b/packages/component/src/Activity/StackedLayout.tsx index e5219be34d..a2f8f533d4 100644 --- a/packages/component/src/Activity/StackedLayout.tsx +++ b/packages/component/src/Activity/StackedLayout.tsx @@ -19,7 +19,6 @@ import ScreenReaderText from '../ScreenReaderText'; import isZeroOrPositive from '../Utils/isZeroOrPositive'; import getFirstBaseOfSoftwareSourceCode from '../Utils/orgSchema/getFirstBaseOfSoftwareSourceCode'; import textFormatToContentType from '../Utils/textFormatToContentType'; -import useUniqueId from '../hooks/internal/useUniqueId'; import { useGetLogicalGroupKey } from '../providers/ActivityLogicalGrouping'; import AttachmentRow from './AttachmentRow'; import Bubble from './Bubble'; @@ -41,7 +40,6 @@ type StackedLayoutInnerProps = Readonly<{ hasAvatar: boolean; hasDisplayText: boolean; hasNub: boolean; - id: string; renderAvatar?: false | (() => Exclude) | undefined; renderBubbleContent: (title?: string | undefined, showStatus?: boolean) => ReactNode; showAvatar?: boolean | undefined; @@ -56,7 +54,6 @@ const StackedLayoutInner = memo( hasAvatar, hasDisplayText, hasNub, - id, renderAvatar, renderBubbleContent, showAvatar, @@ -74,14 +71,7 @@ const StackedLayoutInner = memo( return ( {!!(hasDisplayText || messageThing?.abstract[0]) && ( -
+
; const StackedLayoutRoot = memo((props: StackedLayoutRootProps) => { const { - ariaLabelId, children, extraTrailing, fromUser, @@ -46,7 +44,6 @@ const StackedLayoutRoot = memo((props: StackedLayoutRootProps) => { return (
{}, release: () => {}, sendAccessKey: () => {}, + sendAndGetDevToolsCommand: () => {}, sendDevToolsCommand: () => {}, sendKeys: () => {}, sendShiftTab: () => {}, diff --git a/packages/test/harness/src/host/common/host/index.js b/packages/test/harness/src/host/common/host/index.js index 292cf3aba4..c40923dcd6 100644 --- a/packages/test/harness/src/host/common/host/index.js +++ b/packages/test/harness/src/host/common/host/index.js @@ -14,6 +14,7 @@ const pressAndHold = require('./pressAndHold'); const ready = require('./ready'); const release = require('./release'); const sendAccessKey = require('./sendAccessKey'); +const sendAndGetDevToolsCommand = require('./sendAndGetDevToolsCommand'); const sendDevToolsCommand = require('./sendDevToolsCommand'); const sendKeys = require('./sendKeys'); const sendShiftTab = require('./sendShiftTab'); @@ -45,6 +46,7 @@ module.exports = function createHost(webDriver) { readyPromise: readyWithResolvers.promise, release: release(webDriver), sendAccessKey: sendAccessKey(webDriver), + sendAndGetDevToolsCommand: sendAndGetDevToolsCommand(webDriver), sendDevToolsCommand: sendDevToolsCommand(webDriver), sendKeys: sendKeys(webDriver), sendShiftTab: sendShiftTab(webDriver), diff --git a/packages/test/harness/src/host/common/host/sendAndGetDevToolsCommand.js b/packages/test/harness/src/host/common/host/sendAndGetDevToolsCommand.js new file mode 100644 index 0000000000..000396185e --- /dev/null +++ b/packages/test/harness/src/host/common/host/sendAndGetDevToolsCommand.js @@ -0,0 +1,4 @@ +module.exports = webDriver => + function sendAndGetDevToolsCommand(command, options) { + return webDriver.sendAndGetDevToolsCommand(command, options); + };