From 362ac8de6f9711f342ad19de66480b7673d649cb Mon Sep 17 00:00:00 2001 From: Richard Schreiber Date: Tue, 10 Jun 2025 20:41:51 +0200 Subject: [PATCH] [A11y] Widget: pass doc title in overlay to iframe.title (#5210) --- src/pretix/static/pretixpresale/js/ui/iframe.js | 8 ++++++++ src/pretix/static/pretixpresale/js/widget/widget.js | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/pretix/static/pretixpresale/js/ui/iframe.js b/src/pretix/static/pretixpresale/js/ui/iframe.js index c7d0119e1..fc4706b57 100644 --- a/src/pretix/static/pretixpresale/js/ui/iframe.js +++ b/src/pretix/static/pretixpresale/js/ui/iframe.js @@ -7,4 +7,12 @@ var inIframe = function () { }; if (inIframe()) { document.documentElement.classList.add('in-iframe'); + try { + window.parent.postMessage({ + type: "pretix:widget:title", + title: document.title, + }, "*"); + } catch (e) { + console.error("Could not post message to parent.", e); + } } diff --git a/src/pretix/static/pretixpresale/js/widget/widget.js b/src/pretix/static/pretixpresale/js/widget/widget.js index a3d2a152b..865c04e6c 100644 --- a/src/pretix/static/pretixpresale/js/widget/widget.js +++ b/src/pretix/static/pretixpresale/js/widget/widget.js @@ -939,7 +939,18 @@ Vue.component('pretix-overlay', { } }, }, + mounted () { + window.addEventListener('message', this.onMessage, false); + }, + unmounted () { + window.removeEventListener('message', this.onMessage, false); + }, methods: { + onMessage: function(e) { + if (e.data.type && e.data.type == "pretix:widget:title") { + this.$el.querySelector("iframe").title = e.data.title; + } + }, lightboxClose: function () { this.$root.lightbox = null; },