diff --git a/packages/vkui/src/components/WriteBarIcon/WriteBarIcon.test.tsx b/packages/vkui/src/components/WriteBarIcon/WriteBarIcon.test.tsx
index 24a9c14299..9e367125ae 100644
--- a/packages/vkui/src/components/WriteBarIcon/WriteBarIcon.test.tsx
+++ b/packages/vkui/src/components/WriteBarIcon/WriteBarIcon.test.tsx
@@ -3,7 +3,23 @@ import { render, screen } from '@testing-library/react';
import { baselineComponent } from '../../testing/utils';
import { WriteBarIcon } from './WriteBarIcon';
+const warnStub = jest.fn();
+jest.mock('../../lib/warnOnce', () => {
+ const originalModule = jest.requireActual('../../lib/warnOnce');
+
+ return {
+ __esModule: true,
+ ...originalModule,
+ warnOnce: () => {
+ return () => {
+ warnStub();
+ };
+ },
+ };
+});
+
describe('WriteBarIcon', () => {
+ beforeEach(() => warnStub.mockReset());
baselineComponent((props) => );
it('a11y: adds default aria-label for assigned mode', () => {
@@ -12,6 +28,38 @@ describe('WriteBarIcon', () => {
expect(screen.getByTestId('button')).toHaveAttribute('aria-label', 'Отправить');
});
+ it('a11y: warns when there is no label text', () => {
+ const nodeEnv = process.env.NODE_ENV;
+ process.env.NODE_ENV = 'development';
+
+ render();
+
+ expect(warnStub).toHaveBeenCalledTimes(1);
+
+ process.env.NODE_ENV = nodeEnv;
+ });
+
+ it('a11y: does not warn when there is label text', () => {
+ const nodeEnv = process.env.NODE_ENV;
+ process.env.NODE_ENV = 'development';
+
+ const { rerender } = render();
+ expect(warnStub).not.toHaveBeenCalled();
+
+ rerender();
+ expect(warnStub).not.toHaveBeenCalled();
+
+ rerender(
+
+
+ Send
+ ,
+ );
+ expect(warnStub).not.toHaveBeenCalled();
+
+ process.env.NODE_ENV = nodeEnv;
+ });
+
it('shows counter when count={0} is provided', () => {
const count = 0;
diff --git a/packages/vkui/src/components/WriteBarIcon/WriteBarIcon.tsx b/packages/vkui/src/components/WriteBarIcon/WriteBarIcon.tsx
index 352fe46ad8..4de2269d83 100644
--- a/packages/vkui/src/components/WriteBarIcon/WriteBarIcon.tsx
+++ b/packages/vkui/src/components/WriteBarIcon/WriteBarIcon.tsx
@@ -81,7 +81,7 @@ export const WriteBarIcon = ({
}
if (process.env.NODE_ENV === 'development') {
- const isAccessible = !modeLabel && (!restProps['aria-label'] || restProps['aria-labelledby']);
+ const isAccessible = modeLabel || restProps['aria-label'] || restProps['aria-labelledby'];
if (!isAccessible) {
warn(COMMON_WARNINGS.a11y['button-name'], 'error');