Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Loosen DOMString? getter to accommodate ARIA-style string reflection #10974

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

rahimabdi
Copy link

@rahimabdi rahimabdi commented Jan 31, 2025

Addresses #10037.

The ARIA WG is currently working on improving IDL which includes converting ARIA attributes (where applicable/possible) to be truly enumerated.

As a subtask of this general work, this PR loosens HTML spec to allow DOMString? reflection that is not limited to only known values. This is desirable for non-enumerated ARIA content attributes (e.g., aria-label, role) where the most appropriate IDL attribute type is DOMString? and the absence of the attribute's value is meaningful. This change will also ensure HTML-conformant reflection for future ARIA attributes that require string reflection.

CC @annevk

  • At least two implementers are interested (and none opposed):
  • Tests are written and can be reviewed and commented upon at:
  • Implementation bugs are filed:
    • Chromium: …
    • Gecko: …
    • WebKit: …
    • Deno (only for timers, structured clone, base64 utils, channel messaging, module resolution, web workers, and web storage): …
    • Node.js (only for timers, structured clone, base64 utils, channel messaging, and module resolution): …
  • Corresponding HTML AAM & ARIA in HTML issues & PRs:
  • MDN issue is filed: …
  • The top of this comment includes a clear commit message to use.

(See WHATWG Working Mode: Changes for more details.)


/acknowledgements.html ( diff )
/common-dom-interfaces.html ( diff )

@domenic
Copy link
Member

domenic commented Jan 31, 2025

Can you clarify which of the paths outlined in #10037 this follows?

@rahimabdi
Copy link
Author

@domenic Apologies, please see this latest comment in the issue: #10037 (comment).

source Outdated
@@ -8183,36 +8183,39 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
data-x="idl-DOMString">DOMString</span>?</code>:</p>

<ul>
<li>
<p>The getter steps are:</p>
<li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please undo this throughout? We use single-space indentation.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@annevk Yes, thanks! Fixed as part of: 17e914e.

Copy link
Member

@annevk annevk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Couple more nits.

Comment on lines +8202 to +8203
the <span>reflected IDL attribute</span> is defined to be <span>limited to only known
values</span>:</p>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we want "limited to only known values" to continue to be an assert. (But now as a substep of this.)

I think we also want the known state assert to remain. (But now as a substep of this.)


<li><p>If <var>contentAttributeValue</var> corresponds to a state of
<var>attributeDefinition</var> with no associated keyword value, then return null.</p></li>
<li><p>If <var>contentAttributeValue</var> is null, then return null.</p></li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step is redundant with the next step so let's remove it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants