in order from most to least blame:
1. May+co.
If she hadn't lost her majority and messed up her negotiating possition, we would all be out of the EU on a compromise possition by now. Love it or hate it, she trully killed any chance of a compromise.
2. Boris + ERG
Obviously, as he would be the person to pull the trigger.. may started the fight, bought him the gun and linned it up for him, but he his the one who will fire it.
3. Labour
Lets be honest, and as much has been admitted to in interviews and on political shows. There is no deal that boris can ever bring that Labour will back. None. Even if he brings the most perfect deal imaginable, they will reject it... they have to. Why? because if its a bad deal, they need to rejected it out of good sense and care for this country... but if its a good deal they still have to reject it because admiting that boris and the tories saved brexit, is political suicide. So they are somewhat stuck, but their possition is also a large contributing factor to us getting no deal.
4. Cameron
For calling the referendum in arrogance, and making the awful election promise of having one, whilst expecting to be in a coalition that would never have to deliver the promise.
5. The EU
They are doing what they should do, and protecting their interests.. but they are playing a risky game. They know that making the deal as bad as possible is the best way to push the UK into remaining - and its currently working. But if by some method unthought of boris manages to get around the law and does leave.. they will hold a bit of responsibility. I think their gamble will pay off though, for me the only thing that is potentially stopping us from really being on the road to remaining is Labour's messy policy. If they can just stomach joining up with the Libs on this, they will win the next election, and can either revoke article 50, or have another referendum (which remain would comfortably win).
Not to blame: SNP, Lib dems, Greens etc. They stood on clear manifestos to remain, and all of their actions have been in line with what their voters voted for.