RESOLVED MOVED255764
Support of multiple contexts for JSON+LD content in script element (square brackets)
https://bugs.webkit.org/show_bug.cgi?id=255764
Summary Support of multiple contexts for JSON+LD content in script element (square br...
Karl Dubost
Reported 2023-04-20 20:37:35 PDT
The advanced context usage for JSON+LD authorizes the use of an array. https://w3c.github.io/json-ld-syntax/#advanced-context-usage Nothing is said in the section about a restriction in embedding JSON+LD in html documents https://w3c.github.io/json-ld-syntax/#embedding-json-ld-in-html-documents So the square bracket syntax is failing in Safari: ``` data:text/html,%20%20%20%20<script%20type="application/ld+json">[{"@context":%20"https://schema.org"}]</script> ``` with ``` TypeError: undefined is not an object (evaluating 'r["@context"].toLowerCase') ``` while this is working. ``` <script type="application/ld+json">{"@context": "https://schema.org"}</script> ``` The minimal test case to reproduce the issue is ``` <script type="application/ld+json">[]</script> ``` In both Chrome and Firefox, this syntax is accepted.
Attachments
Radar WebKit Bug Importer
Comment 1 2023-04-20 20:37:50 PDT
Karl Dubost
Comment 2 2023-12-15 01:21:02 PST
I have moved the radar to Safari, as this is not handled on WebKit side, but Safari side.
Xidorn Quan
Comment 3 2024-05-21 18:24:49 PDT
Karl, is there anywhere the progress of the issue can be tracked publicly?
Karl Dubost
Comment 4 2024-05-21 20:25:49 PDT
Oh yes I dropped the ball about that. So one side WebKit doesn't suport JSON+LD in the engine. And the other Safari just needs the data as-is, so basically not to evaluate but just load it. Let see if there's an intermediary solution here.
Karl Dubost
Comment 5 2024-05-27 23:48:43 PDT
Xidorn, Do you know about an app or a current website with a usage for this construct/syntax?
Xidorn Quan
Comment 6 2024-05-28 04:43:28 PDT
Yes, Canva's logout templates page currently uses this syntax: https://www.canva.com/templates/ (If you have Canva account, you need to logout or use private mode to access). I think we are fixing it, so I can't say how long it would keep being like it. Its current content is: ``` [{"@context":"https:\u002F\u002Fschema.org","@type":"WebSite","url":"https:\u002F\u002Fwww.canva.com\u002Ftemplates\u002F","potentialAction":[{"@type":"SearchAction","target":"https:\u002F\u002Fwww.canva.com\u002Ftemplates\u002Ftemplates\u002F?query={search_term_string}","query-input":"required name=search_term_string"}]}] ```
Karl Dubost
Comment 7 2024-05-28 14:24:54 PDT
Thanks a lot!
Karl Dubost
Comment 8 2024-06-04 00:05:48 PDT
Xidorn, this is still being discussed to find the origin of the issue and if it is something to fix on Safari side.
Karl Dubost
Comment 9 2024-06-04 00:05:55 PDT
Xidorn, this is still being discussed to find the origin of the issue and if it is something to fix on Safari side.
Victor
Comment 10 2025-06-15 07:00:49 PDT
Is there any progress on that issue?
Note You need to log in before you can comment on or make changes to this bug.