the problem is that both the button and anchor elements are "interactive content": https://www.w3.org/TR/html50/dom.html#interactive-content-0
for example, when you click on a submit button it should submit the parent form and if you click on an anchor element it should send a request for that url. or suppose one or both have onClick attributes specified? if one element contains the other, which one gets the click event?
what do you want to happen when the visitor clicks on that button/anchor?
So, if I like to keep <button class="button1">Link to products</button> and just as a link it is wrong?
Is this in the right direction? <button type="button"><a href="https://www.example.com/">My products</a></button> without notice: Descendant of the 'a' element
From Mozilla: Be careful when marking up links with the button role. Buttons are expected to be triggered using the Space key, while links are expected to be triggered through the Enter key. In other words, when links are used to behave like buttons, adding role="button" alone is not sufficient. It will also be necessary to add a key event handler that listens for the Space key in order to be consistent with native buttons.
[edited by: toplisek at 12:19 pm (utc) on Mar 28, 2018]
It is interesting that known validators use IE11 validation. Strange is that even tel: value is as a warning. I guess 99% of websites do not meet old validations and search engines should post their official reports.