Hey, I'M the fucking Ameircan here....
I would know better than you whether or not Keira did a good American accent, and she did. She sounded nothing like Keira Knightley in that role. Anyone seeing the film who did not already know who she was would not have thought twice about it.
Was her accent PERFECT? No, but it was very good....In fact, better than the majority of other Brit attempts at sounding American that I have seen. Jude Law, for example, does a terrible American accent. So does Kritstin Scott Thomas.
The BEST Brit actors at playing American? Kate Winslet and Bob Hoskins.
If I want to know about the quality of a particular American actor's attempt at a British accent, I'll let you be the judge.