A government initiative to tackle obesity and improve public health is "overly reliant" on voluntary agreements with the food industry, a report has warned.
Which? consumer group said major food companies are still failing to display the calorie content of their products, or reduce the amount of salt in their foods, despite the launch of the public health "responsibility deal" one year ago.
But Health Secretary Andrew Lansley said the government had shown "real leadership" in seeking to improve public health while avoiding regulation for food companies and the alcohol industry.
The Which? report - entitled Responsibility Deal: One Year On - says only two of the country's top 10 restaurant and pub groups have agreed to display the calorie content of their products, with big brands such as Pizza Express, Nando's, Cafe Rouge and Beefeater yet to sign up to the deal.
Costa Coffee, the country's largest coffee chain, Caffe Nero and Caffe Ritazza have also failed to commit to displaying calorie information on their menus, the report says.
And major food brands such as Iceland and Birds Eye have yet to agree to reducing salt in their food, Which? said.
Richard Lloyd, executive director of Which?, said: "Our audit of progress made under the government's responsibility deal has shown the current approach is overly reliant on vague voluntary promises by the food industry. This has so far failed to bring about change on anything like the scale needed.
"The government relies too much on voluntary deals with industry rather than showing real leadership. If food companies don't agree to help people eat more healthily, then we must see legislation to force them to do so for the sake of the health of the nation."
The government's responsibility deal was launched in March last year, with major brands such as McDonald's, Marks & Spencer, Morrisons, Sainsbury's, Tesco, The Co-operative and Waitrose signing up.
The Department of Health said 371 organisations have now agreed to the deal - compared to 176 when the scheme was launched - with 9,000 food outlets in England displaying calorie information on their menus.
Mr Lansley said: "The responsibility deal has delivered far more action, more quickly than before and more than could have been achieved through regulation in that time. We have shown real leadership, working with industry to find an approach that delivers results.
"We see the results in our everyday life - calorie information is on our high street, less salt is in the food we buy and artificial trans fats are being taken out of food. This is helping people around the country to live healthier lives.
"We know this is an ambitious challenge but our successes so far clearly demonstrate it works. We will work hard to work with even more more businesses, sign them up to more pledges and get bigger results."
British Retail Consortium said more food manufacturers and restaurants should be encouraged to take part in the responsibility deal, but stressed that improving public health was a "long-term issue".
Andrew Opie, British Retail Consortium food director, said: "There's a lot to be proud of one year into the responsibility deal. Tackling public health is a long-term issue and there's now a solid foundation for future work. It's a shame a consumer group like Which? isn't doing more to acknowledge that."
Which? is now calling on the government to ensure all food companies use traffic light nutrition labelling, establish 2014 salt reduction targets, and require calorie labelling in chain restaurants, among a number of demands.
Costa Coffee said the company has completed a trial to display calorie information on menus in selected stores and is reviewing the results.
A spokeswoman said: "We believe customers have a right to know what is in their daily cappuccino, sandwich or slice of cake, so the nutritional information about our bespoke range is shown on individual pack labels."