Ideally browsers should just bundle their own CA certs, and implement some form of semi-formal wot/have a sane UI for the rest. After all we trust our browsers implicitly - but why should we elevate them to do transitive trust for us?
Lets just build on x509, and get some kind of meaningful trust.
Lets say that Apple, Microsoft, Debian, Red Hat (eaxh distribute their own trusted (self-signed) CA cert. And also work with Mozilla, Google to trust (sign) their certs.
Then let trust-on-first-use or some other distributed method take care of the rest. When let's encrypt work: let distributions trust that too.
The resulting system would not be perfect - but I still think it would have a better trust model than our current mess.