There’s no eye of newt or toe of frog in “Roald Dahl’s The Witches,” Robert Zemeckis’s take on the 1983 book — just a mischief of mice, a cantankerous cat and an occasional s-s-snake. There are people, too; some buzz around in the background while others push the story forward. Chief among these are an unnamed orphan, call him the Boy (Jahzir Bruno, sweetly sensitive), and his loving grandmother (Octavia Spencer), who form a wee bulwark against witches who appear fair but are most foul.
Narrated by a distracting Chris Rock, the story primarily takes place in flashback, in 1967, starting with an accident that kills the Boy’s parents. He moves into the Alabama home of his Grandma, whose warm embrace eases his pain. Zemeckis, working from a script written with Kenya Barris and Guillermo del Toro, handles this setup effortlessly, with his two cozily inviting leads, low-key visual panache and customary restive camerawork. Within minutes, Zemeckis has created a vibrantly inhabited world, even if the golden oldies on the soundtrack are overly familiar, as is his habit, and Grandma’s caky cornbread looks more Northern than Southern.
The witches sidle in, disguised and cunning. One materializes in a once-upon-a-time tale; another pops up in the present. Amid intimations of doom, Grandma and the Boy decamp to a resort hotel, a nonsensical turn that’s effectively a narrative contrivance. There, they soon find themselves facing down a coven of witches stirring up trouble. United by their hatred of children, the twisted sisters are led by the Grand High Witch (an amusing Anne Hathaway), who arrives with a black cat, a trunk stuffed with cash and a vile plan. Speaking in a vaguely Eastern European accent with Nordic notes, she has a cavernous mouth and jagged teeth right out of del Toro’s imaginarium.