BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Sabre//Sabre VObject 4.5.8//EN
CALSCALE:GREGORIAN
LAST-MODIFIED:20260219T060920Z
BEGIN:VTIMEZONE
TZID:Asia/Tokyo
X-MICROSOFT-CDO-TZID:20
BEGIN:STANDARD
DTSTART:20241117T071500
TZOFFSETFROM:+0900
TZOFFSETTO:+0900
TZNAME:JST
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
UID:e3553cb1-34f7-47f5-81e8-eea4da37aa73
DTSTAMP:20260219T060920Z
SUMMARY:Custom attributes for all elements
DTSTART;TZID=Asia/Tokyo:20251112T161500
DTEND;TZID=Asia/Tokyo:20251112T171500
DESCRIPTION:https://www.w3.org/events/meetings/e3553cb1-34f7-47f5-81e8-eea4
 da37aa73/\n\n2023's breakouts had a [discussion on alternatives to customi
 zed built-ins](https://github.com/w3c/tpac2023-breakouts/issues/44).\n\nA 
 sketch of a proposal came out around this time: customised attributes. htt
 ps://github.com/WICG/webcomponents/issues/1029\n\nI'd like to set some tim
 e to discuss this idea\, the merits\, complexities\, and discuss whether o
 r not this solves problems for developers without too much complexity for 
 the platform.\n\n**Goal(s):**\nDecide if a model for Custom Attributes is 
 viable in the platform\, and what a design might look like.\n\nAgenda\n\n1
 . Can we reasonably enforce that HTML will only standardise attribute name
 s without dashes\, and developers can use dashes (modulo `data-*` and `ari
 a-*`)\; see https://github.com/whatwg/html/issues/2271\n2. Can we agree th
 at pursuing a series of lifecycle callbacks for when an attribute node is 
 connected\, disconnected\, and changed would be a useful feature for devel
 opers\, and something that the major browser vendors would be happy pursui
 ng.\n3. Do we agree that `class CustomAttr extends Attr {}` is a good desi
 gn choice? This means giving Attr() a constructor\, and would be `getAttri
 buteNode()` etc could now return subclasses of `Attr`. It would also mean 
 `setAttribute`/`removeAttribute`/`toggleAttribute` would run these lifecyc
 les\, including: looking up the attribute name in some form of registry\, 
 & calling into script. Is this okay?\n4. Can Attrs leverage `CEReactions` 
 or would we need some kind of new `CAReactions`?\n5. Reflection is useful 
 for attributes\, could we design a way to bake reflection into custom attr
 ibute nodes? E.g. `static reflectedAs = "long"` which would change the beh
 aviour of `Attr.prototype.value` for such custom attributes.\n6. Default v
 alues for attributes is useful\, can we design something like `static defa
 ultValue = ...`?\n7. We would likely need some kind of attribute registry 
 (much like `window.customElements`). Does `window.customAttributes` make s
 ense? Perhaps we wish to define attributes only for specific elements\, su
 ch as `<button>`\, how would that work?\n8. Custom Element authors may wel
 l wish to scope attributes like they do scoped elements\, should we do som
 ething similar to `shadowRoot.customElementRegistry`? How does this interp
 lay with per-element attributes (see above)?\n9. What powers can we give a
 ttributes to alter their `ownerElements`? We likely _don't_ want to give a
 ccess to all of `ElementInternals` but for e.g. attributes might want to p
 rovide a minimum accessible role or expose custom states. \n10. Often time
 s attributes are paired or at-least coordinate\, `popovertarget`/`popovert
 argetaction`\, `command`/`commandfor`\, `type`/`value`. How can custom att
 ribute authors ergonomically co-operate?\n\n**Materials:**\n- [Session pro
 posal on GitHub](https://github.com/w3c/tpac2025-breakouts/issues/46)
STATUS:CONFIRMED
CREATED:20251028T131219Z
LAST-MODIFIED:20260219T060920Z
SEQUENCE:3
ORGANIZER;CN=W3C Calendar;PARTSTAT=ACCEPTED;ROLE=NON-PARTICIPANT:mailto:nor
 eply@w3.org
LOCATION:Floor 4 - 404
CATEGORIES:TPAC 2025,Breakout Sessions
END:VEVENT
END:VCALENDAR
