In HTML5, it's allowed.
Because you use a sectioning element (article
in this case), it doesn't create a problem with your outline. If you'd omit the sectioning element, the start of the link would be still in scope of the previous section, which would not be what you want to say semantically.
So your example is fine. (except for the a
element with the class button
, because it is not closed, but I assume this is an error in your example).
You can't say in general if this would be problematic for search engines, as there are countless search engines and they all work differently. As this is valid markup for some time now, we could assume that all actively developed search engines are handling this fine.
Same for accessibility. Older tools might have problems with this, but I'd bet that most actively developed tools can handle this. Here you can find an older screenreader test: HTML5 block link tests. This blog posting might also be interesting: Block level links and accessibility
AFAIK various user-agents handled this markup even before it was valid, as some web authors used this pattern anyhow.