Tried responding to this via mail, but perhaps that doesn’t work yet… In either case, will repost my comments here (and expand a bit):
…Because if i want to define how it becomes hidden (a css animation to slide it shut or offscreen perhaps) then i have to fight hidden. Am I doing it wrong? It feels weird debating this with you Steve since you are editor on both of the relevant documents - so I’m just going to share my perspective and say “why is that wrong, because even with the documents - it feels right to me.”
As an illustration, I’ll to point to input type=hidden – generally speaking this is where the idea originates and here it is fundamentally data for processing that has no business ever being shown to a user (but that’s a different thing)… You could use the global hidden attribute for similar reasons - something purely technical… Beyond that, the act of hiding seems like display or accessibility which seem better handled with CSS and Aria, respectively. This same notion this has always seemed to jive in my mind with the HTML spec which states
The hidden attribute must not be used to hide content that could
legitimately be shown in another presentation. For example, it is
incorrect to use hidden to hide panels in a tabbed dialog, because the
tabbed interface is merely a kind of overflow presentation — one could
equally well just show all the form controls in one big page with a
scrollbar. It is similarly incorrect to use this attribute to hide
content just from one presentation — if something is marked hidden, it
is hidden from all presentations, including, for instance, printers.
This whole section of the spec, in fact, seems to me to speak of the difference between something that is actually hidden for practical reasons by its nature (for example, a chunk that is maintained via script, never intended to be shown) vs something that is purely about style - it cites examples like a canvas element offscreen, etc. It also states that using CSS you should be able to override the display nature.
Aria’s attribute doesn’t re-invent, it actually better expresses. “Expanded” is what you are trying to express here and it has no conflict that I can see with the specs at all. In fact, in different UIs you might choose to always display them expanded, make them into clickable links which display the contents as a “page” or in some “main” area (think ember/angular), animate them opened and closed, etc… But mostly all of them work with the idea of something ‘expanded’ better than ‘hidden’ imo.