Well, whether or not this question gets migrated I figured I'd leave my opinion.
The Acceptance Criteria are chosen by the Product Owner, plain and simple. It's a way of formalizing what the Product Owner will need to see to be able to sign of on a story as being "complete."
How much detail the PO wants to put into that is therefore a product of the PO's work style, knowledge, etc. Many POs have UX training and would like to go so far as to define what it should look like. I think that's fine, as long as it works for your team. Others are mainly customer experts and leave the design up to the team.
Personally, I would encourage teams to formalize as much as can be thought of when looking at the story so that you minimize the number of conflicting assumptions between the team and PO.
However, in the end it's up to the team whether to accept a story into their sprint. They have every right (in Scrum, anyway) to say that the ACs are overly broad, overly prescriptive, infeasible, or too large to chew off in one sprint. Therefore, there is usually a lot of negotiation that happens between the team and the PO before agreeing on the ACs for each story.
But in the end, it's the Product Owner's call since she's the one who will be doing the "accepting." In general, Scrum says that it's the Product Owner's job to say what to build, and the team's job to say how to build it (and to actually do it). So really it's about what type of PO you want to be.