From 71e6d7205105cb7414e1ee635688a2ae9b9072cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=B3=E5=BB=B7=E5=AE=89?= <73953029+nrps9909@users.noreply.github.com> Date: Thu, 27 Aug 2026 05:19:32 +0800 Subject: [PATCH] fix: remove button semantics when click upload is disabled --- src/AjaxUploader.tsx | 9 +++++++-- tests/uploader.spec.tsx | 7 +++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/AjaxUploader.tsx b/src/AjaxUploader.tsx index 0244c3be..62f61b77 100644 --- a/src/AjaxUploader.tsx +++ b/src/AjaxUploader.tsx @@ -368,10 +368,15 @@ class AjaxUploader extends Component { onMouseLeave, onDrop: this.onFileDrop, onDragOver: this.onFileDragOver, - tabIndex: hasControlInside ? undefined : '0', + tabIndex: hasControlInside || !openFileDialogOnClick ? undefined : '0', }; return ( - + { expect(container.querySelector('span')!).not.toHaveAttribute('role', 'button'); }); + it("Should not be focusable and doesn't have role=button when click upload is disabled", () => { + const { container } = render(); + + expect(container.querySelector('span')!.tabIndex).not.toBe(0); + expect(container.querySelector('span')!).not.toHaveAttribute('role', 'button'); + }); + it('should receive same defaultRequest as src', done => { const { default: srcRequest } = require('../src/request'); let receivedDefaultRequest: any;