From 53ff8897c5c8bc6175cf94ed24e2d2c5fa17365b Mon Sep 17 00:00:00 2001 From: Even Oscar Andersen Date: Sun, 13 Apr 2025 11:26:34 +0200 Subject: [PATCH] wasm: a11y - Use aria-label for QAccessible::Name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit innerHTML does not work too well with type input. Instead use attribute 'aria-label' Task-number: QTBUG-135590 Change-Id: Ibec36a133c650bb51b1f1a84580a5ce35531c137 Reviewed-by: Morten Johan Sørvig --- src/plugins/platforms/wasm/qwasmaccessibility.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/plugins/platforms/wasm/qwasmaccessibility.cpp b/src/plugins/platforms/wasm/qwasmaccessibility.cpp index c4d697b3e55..3ad0bf36ad9 100644 --- a/src/plugins/platforms/wasm/qwasmaccessibility.cpp +++ b/src/plugins/platforms/wasm/qwasmaccessibility.cpp @@ -400,8 +400,11 @@ void QWasmAccessibility::setHtmlElementGeometry(emscripten::val element, QRect g void QWasmAccessibility::setHtmlElementTextName(QAccessibleInterface *iface) { emscripten::val element = ensureHtmlElement(iface); - QString text = iface->text(QAccessible::Name); - element.set("innerHTML", text.toStdString()); // FIXME: use something else than innerHTML + const QString name = iface->text(QAccessible::Name); + if (name.isEmpty()) + element.call("removeAttribute", std::string("aria-label")); + else + element.call("setAttribute", std::string("aria-label"), name.toStdString()); } void QWasmAccessibility::setHtmlElementTextNameLE(QAccessibleInterface *iface) {