Quite the conundrum. The way I see it, it's entirely in your selfish interest as a client dev to be completely permissive, but better for the ecosystem to be compliant. We have seen this with browsers where back when normal people made their own shitty webpages, the browsers would compete to be the most lenient and work with whatever shitty code they saw. The problem is that eventually those wrong practices became common and now there is a whole bunch of pseudo specs that aren't actually part of the HTML/CSS/JS spec. I think this is part of the reason why browser engines are so centralized nowadays with only a few options. Any newcomer has to implement a bunch of non existent conventions that a ton of websites use. Many of these being bugs from IE or NN. By being permissive and working with everything, you might be upholding specs that future client devs will have to support, that won't even be written anywhere. Its literally tech debt that trancends your codebase. I think you personally are one of the top people who need to be strict. Amethyst is such a big client that you genuinely have the power to uphold a spec or create a new one by not doing so. I think developers need personal responsibility and especially if good error messages are provided, they can quickly fix their shitty code if forced to. I know I often don't give a shit and will leave wrong code that works, even if it's not hard to fix.