Christopher Eccleston says his northern accent held him back when trying to secure Shakespearean roles on stage.
The actor star says there is a perception in the industry that "people like me can't be classical".
Eccleston was born into a working class family on a council estate in Salford in Lancashire in 1964.
He will appear as Macbeth in a new production at the Royal Shakespeare Theatre in Stratford Upon Avon, but he had to ask for the role.
"I'm never offered Shakespeare," he says. "I went after this. Nobody offered it me. I went after it."
He wrote "an old-fashioned letter" to the artistic director of the RSC, Gregory Doran.
"I said, since I was 17 I've always wanted to play Macbeth at the Royal Shakespeare Company. So can I do it?"
But the 54-year-old resents having to ask for roles.
"I should have been offered more but I didn't go the right university or the public schools. It needs to change," he adds.
He has played one other Shakespeare role on stage - Hamlet at the West Yorkshire Playhouse in 2002.
But nothing since. And he is convinced his background is to blame.
"I think the people who run some of the big established theatres, particularly in London, they associate Shakespeare with white, middle-class men.
"It's discrimination and I loathe it."
And for fans of his work on television, including Doctor Who, Cracker and Our Friends in the North, and on film in Shallow Grave and 28 Days Later, Christopher Eccleston has a surprising confession.
"I became a television actor and a film actor by default. But if I'd been offered the big classic roles which I wanted to do, I'd have done them.
"I've had a passionate love of Shakespeare since I was 17, but in a way, it's like the love that dare not mention its name."
Nonetheless, despite the fact it makes him "very angry", Christopher Eccleston says he is "fortunate" because he is white and male.
"It's a lot more difficult for women," he adds.
And for that reason he thinks gender blind casting is "the greatest thing to happen to British theatre since William Shakespeare wrote his plays".
"The fact that there are women who will one day play Macbeth and play Hamlet, with no second thought, is the most wonderful thing," he says.
"But women still struggle. The roles are not there. There is still a long, long way to go."
Christopher Eccleston played the ninth incarnation of the Doctor when the show returned to BBC One after 16 years.
He welcomes the casting of Jodie Whittaker as the first female star of Doctor Who.
"She will be the best Doctor. I mean why did they have to wait so long?"
He says the role has been played by "too many skinny white men like me," before adding: " I absolutely loved playing the character and I'm so glad it's being reinvented."