Fixing a few things
First, self-closing tags' messages could override another message in an adjacent tag because it used ::before too.
Now self-closing tags'messages are added on ::after, and any adjacent tag which halready has a message can carry two messages.

Another issue was about sectionning tags, the test case was too hard. <article> can be in a <section>, for example.