"}},{"@type":"Question","name":"What is the hidden attribute, and how does its behavior differ from CSS display: none?","acceptedAnswer":{"@type":"Answer","text":"hidden is a boolean global attribute meaning the element is not currently relevant, so the browser doesn't render it. It's semantically richer than display: none but is implemented as a weak CSS default that styling can override. What hidden does: Removes the element from rendering and the accessibility tree, signaling intent (\"not relevant right now\"). The HTML5 hidden=\"until-found\" value keeps content findable via in-page search and reveals it. How it differs from display: none: hidden only applies the UA default display: none; any explicit display rule in CSS overrides it, leaving the element visible despite the attribute. It carries semantic meaning; display: none is purely presentational. Practical note: prefer hidden for relevance-based visibility, but be aware CSS can silently defeat it."}},{"@type":"Question","name":"What does the contenteditable global attribute do?","acceptedAnswer":{"@type":"Answer","text":"contenteditable is a global attribute that makes an element's content directly editable by the user in the browser, turning ordinary markup into an editable region. Values: true (or empty) makes it editable; false makes it non-editable; inherit follows the parent. How it behaves: Users can type, delete, and format text; the browser maintains the editing caret and selection. It's the foundation of rich-text editors (the WYSIWYG building block). Caveats: Edits change the live DOM, not a form value, so you read content via JS, not a name/form submission. Cross-browser behavior (generated markup, paste handling) is inconsistent, so production editors add heavy normalization."}},{"@type":"Question","name":"What does the translate global attribute do, and when would you use it?","acceptedAnswer":{"@type":"Answer","text":"translate is a global attribute that tells translation tools (browser translators, machine translation) whether an element's text content should be translated or left as-is. Values: yes (default, translatable) or no (leave untranslated); the setting is inherited by descendants. When to use translate=\"no\": Proper nouns: brand names, product names, and people's names that shouldn't change. Technical strings: code samples, commands, or literal values that must stay exact. It's a hint to translation engines, not enforced rendering, but well-behaved tools (including Google Translate) honor it.
The error was thrown by JSON.parse().