When using empty URL fragment links, to send a user to the top of the page (e.g.
<a href="#">return to top</a>), are these links considered broken or invalid? One of my tools is returning them all as broken links.
Technically, "#" is a well-defined URL reference that points to the start of the current document, so it is not “broken” in formal sense. It can, however, be regarded as bad for accessibility, and it is also a common symptom of “fake” links, i.e.
So you can regard this as an incorrect error message, or as a useful warning message that might be a little poorly formulated.
I don't think it is considered as broken link.
Broken link is a link that points to resources doesn't exist (404 HTTP response).