Skip to content

Commit 36eb8cb

Browse files
committed
[web] support iframe role attribute
1 parent 48d3f03 commit 36eb8cb

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

flutter_inappwebview_platform_interface/lib/src/in_app_webview/in_app_webview_settings.dart

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1652,6 +1652,16 @@ as it can cause framerate drops on animations in Android 9 and lower (see [Hybri
16521652
])
16531653
String? iframeCsp;
16541654

1655+
///A string that reflects the `role` HTML attribute, containing a WAI-ARIA role for the element.
1656+
@SupportedPlatforms(platforms: [
1657+
WebPlatform(
1658+
requiresSameOrigin: false,
1659+
apiName: "iframe.role",
1660+
apiUrl:
1661+
"https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles")
1662+
])
1663+
String? iframeRole;
1664+
16551665
@ExchangeableObjectConstructor()
16561666
InAppWebViewSettings_({
16571667
this.useShouldOverrideUrlLoading,
@@ -1794,6 +1804,7 @@ as it can cause framerate drops on animations in Android 9 and lower (see [Hybri
17941804
this.iframeReferrerPolicy,
17951805
this.iframeName,
17961806
this.iframeCsp,
1807+
this.iframeRole,
17971808
}) {
17981809
if (this.minimumFontSize == null)
17991810
this.minimumFontSize = Util.isAndroid ? 8 : 0;

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

Lines changed: 11 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: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@ 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;
233234

234235
if (settings!.iframeSandbox != null &&
235236
settings!.iframeSandbox != Sandbox.ALLOW_ALL) {
@@ -470,6 +471,9 @@ class InAppWebViewWebElement implements Disposable {
470471
if (settings!.iframeCsp != newSettings.iframeCsp) {
471472
iframe.csp = newSettings.iframeCsp;
472473
}
474+
if (settings!.iframeRole != newSettings.iframeRole) {
475+
iframe.role = newSettings.iframeRole;
476+
}
473477

474478
if (settings!.iframeSandbox != newSettings.iframeSandbox) {
475479
var sandbox = newSettings.iframeSandbox;

0 commit comments

Comments
 (0)