5 ms·
> Buttons regularly perform navigations. Clicking a logout button navigates the current page to a logged-out one; clicking a “search” button navigates the curre
by TonyAlicea10 2mo ago
> Buttons regularly perform navigations. Clicking a logout button navigates the current page to a logged-out one; clicking a “search” button navigates the current page to the query results.
This seems to conflate appearance with semantics. If an element causes a navigation, I make it a link. Whether it looks like a button is irrelevant, that’s CSS.
I always choose one or the other by intended behavior first, and that always works out great.
That said, I like the idea.
- physicalecon 2mo agoImagining you have a navigation to “/logout” that server side invalidates your token and redirects to home, would you implement that as a link? If so, what happens if someone tries to “open in a new tab” it?
- angrybards 2mo agoYea I think a form that posts is the right tool for the job here. It is clearly unsafe semantics.
- paulddraper 2mo agoWell, the idea here is “things that look like buttons do page navigation.” And the proposal is that we should more closely align the presentation and function. You are correct that if you don’t care about alignment, there is nothing wrong with the status quo.
- TonyAlicea10 2mo agoPresentation in what medium? A screen reader? You’re talking the user-agent stylesheet, which is a particular chosen presentation that I can change with my own CSS. I can make a button look like a link. You’re suggesting aligning to an inherently and deliberately changeable presentation. The idea is fine, but worry about what an HTML element “looks like” is not a good reason.
- paulddraper 2mo ago> You’re suggesting aligning to an inherently and deliberately changeable presentation. Yes, you have understood the proposal.
- alexpetros 2mo ago> This seems to conflate appearance with semantics. If an element causes a navigation, I make it a link. Neither of my examples work with links. Logout buttons must be buttons because they trigger unsafe requests, and "search" buttons are buttons because they submit the form as a query parameter. Both of these examples, are, however, navigations.[0] > Whether it looks like a button is irrelevant, that’s CSS. It's not irrelevant, because even if you style a link like a button (or vice versa), it will still behave like the thing it actually is. That's why it's important to have native HTML behavior that lets people use the right semantic element. [0] https://html.spec.whatwg.org/multipage/browsing-the-web.html#navigation-and-session-history https://html.spec.whatwg.org/multipage/browsing-the-web.html...
- jasonkester 2mo ago“Logout buttons must be buttons because they trigger unsafe requests” But this is just more of the pedantic developer nonsense that everyone is complaining about here. I’ve built tons of sites in my time, and the logout “button” is always a link to “/?logout=1”. In 30 years, this has never caused a problem.