Why? A “create” button that takes you to a creation page is still a link to that page and should be a link. It looking like a button indicates an action that the user understands. It is accessible, semantically correct, and follows accepted design conventions. What is the problem?
Because there's an expected built-in behaviour to these elements.
> It is accessible, semantically correct, and follows accepted design conventions.
There's nothing accepted about disguising a link as a button. Especially when it literally does no action except, you know, linking to a different page.
Though, of course, there are ambiguous situations, especially in the context of PWAs. But code examples are not an ambiguous situation.
I think that ship has sailed, I really don't think that average users expect a button to 'do something' (in the sense it submits a form or something).
Going to a different page /is/ 'doing something' as far as users are concerned. Certainly not the internet of old where a form was a form, and a link was a link.
An average user has no idea what's going on in modern software anymore, to be honest. Nothing is what it seems and is redesigned every couple of months
There is a substantial difference between these two links. One takes you to a location, the other one starts a process which ends with an action.
As a user you are not going to be clicking the “New” button everyday. Maybe once a month, maybe once a year. So you are likely not going to remember where it is from the last time you clicked it. If you don’t find it when you need it, you will get frustrated. It needs a lot of visual weight relative to the other links in this nav section. Giving the same weight as a button is a reasonable decision.
Eh, unless an app is a SPA (where you attach event handlers to buttons to run client side validation or something like that) it’s way simpler to have a form route to another resource via a link. But users think of them more as actions than links, so its perfectly reasonable to disguise a link as a button.
edit: I said “form”, but I meant page. Forms actually use buttons!