Skip to content

Commit 564495e

Browse files
Merge pull request #2293 from p-mazhnik/web-iframe-role
[web] support iframe role and aria-hidden attributes
2 parents e0b65c7 + abb5eec commit 564495e

File tree

3 files changed

+48
-2
lines changed

3 files changed

+48
-2
lines changed

flutter_inappwebview_platform_interface/lib/src/in_app_webview/in_app_webview_settings.dart

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1656,6 +1656,25 @@ as it can cause framerate drops on animations in Android 9 and lower (see [Hybri
16561656
])
16571657
String? iframeCsp;
16581658

1659+
///A string that reflects the `role` HTML attribute, containing a WAI-ARIA role for the element.
1660+
@SupportedPlatforms(platforms: [
1661+
WebPlatform(
1662+
requiresSameOrigin: false,
1663+
apiName: "iframe.role",
1664+
apiUrl:
1665+
"https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles")
1666+
])
1667+
String? iframeRole;
1668+
1669+
@SupportedPlatforms(platforms: [
1670+
WebPlatform(
1671+
requiresSameOrigin: false,
1672+
apiName: "iframe.ariaHidden",
1673+
apiUrl:
1674+
"https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-hidden")
1675+
])
1676+
String? iframeAriaHidden;
1677+
16591678
@ExchangeableObjectConstructor()
16601679
InAppWebViewSettings_({
16611680
this.useShouldOverrideUrlLoading,
@@ -1798,6 +1817,8 @@ as it can cause framerate drops on animations in Android 9 and lower (see [Hybri
17981817
this.iframeReferrerPolicy,
17991818
this.iframeName,
18001819
this.iframeCsp,
1820+
this.iframeRole,
1821+
this.iframeAriaHidden,
18011822
}) {
18021823
if (this.minimumFontSize == null)
18031824
this.minimumFontSize = Util.isAndroid ? 8 : 0;

flutter_inappwebview_platform_interface/lib/src/in_app_webview/in_app_webview_settings.g.dart

Lines changed: 19 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flutter_inappwebview_web/lib/web/in_app_web_view_web_element.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,8 @@ class InAppWebViewWebElement implements Disposable {
230230
iframe.referrerPolicy;
231231
iframe.name = settings!.iframeName ?? iframe.name;
232232
iframe.csp = settings!.iframeCsp ?? iframe.csp;
233+
iframe.role = settings!.iframeRole ?? iframe.role;
234+
iframe.ariaHidden = settings!.iframeAriaHidden ?? iframe.ariaHidden;
233235

234236
if (settings!.iframeSandbox != null &&
235237
settings!.iframeSandbox != Sandbox.ALLOW_ALL) {
@@ -470,6 +472,12 @@ class InAppWebViewWebElement implements Disposable {
470472
if (settings!.iframeCsp != newSettings.iframeCsp) {
471473
iframe.csp = newSettings.iframeCsp;
472474
}
475+
if (settings!.iframeRole != newSettings.iframeRole) {
476+
iframe.role = newSettings.iframeRole;
477+
}
478+
if (settings!.iframeAriaHidden != newSettings.iframeAriaHidden) {
479+
iframe.ariaHidden = newSettings.iframeAriaHidden;
480+
}
473481

474482
if (settings!.iframeSandbox != newSettings.iframeSandbox) {
475483
var sandbox = newSettings.iframeSandbox;

0 commit comments

Comments
 (0)