Texas Democratic politician Beto O'Rourke has been seething for years over America's surging gun violence, routinely attacking his opponents for their inaction on firearm reform.

Yesterday, 24 hours after a massacre at Robb Elementary School in the small Texas town of Uvalde left 19 children and two teachers dead, his emotion and fury erupted in public.

Striding down from the auditorium seats at a press conference in the town, Mr O'Rourke disrupted Republican Governor Greg Abbott's remarks about the shooting, pointed at Mr Abbott's face and accused him of doing "nothing" to reduce gun violence.

"This is on you!" Mr O'Rourke fumed at the governor, who was seated at a table on the stage and surrounded by officials including Texas's senators Ted Cruz and John Cornyn, two longstanding pro-gun politicians.

"This is totally predictable when you choose not to do anything for the kids of this state," Mr O'Rourke said.

"I'm standing up for the kids of this state to stop this from happening again."

The outburst followed Mr Abbott's chilling account of how an 18-year-old gunman with "evil in his heart" shot his own grandmother in the face, then raced to the school and opened fire in a classroom before he was killed by an officer.

US Senator Ted Cruz (centre) looks on as Texas Governor Greg Abbott speaks at a press conference at Uvalde High School yesterday

Mr O'Rourke's startling interruption plunged the meeting into chaos and put security officials on high alert.

Mr Abbott sat stone-faced just a few feet away as Mr O'Rourke, a 2020 US presidential candidate who is challenging Mr Abbott for his job this year, confronted him.

"Sir, you are out of line," someone yelled loudly from the stage at Mr O'Rourke.

"Do you want a solution? Stop selling AR-15s in the state of Texas. You want a solution? Have universal background checks."

As he refused to step away, police intervened and voices rose.

Uvalde Mayor Don McLaughlin, a Republican, shouted at him "you're a sick son of a bitch (to) come to a deal like this to make a political issue."

Mr O'Rourke has spoken out after previous mass shootings, including a 2019 massacre in his home town of El Paso, Texas where a far-right gunman killed 23 people, many of Latino origin.

"Why are we letting this happen in this country? Why is this happening in this state, year after year, city after city?" Mr O'Rourke asked reporters after leaving the auditorium.

Beto O'Rourke interrupts a press conference held by Texas Governor Greg Abbott

"This is on all of us if we do not do something," he said.

"We're going to stop the next one. We're standing up right here in Uvalde, Texas right now, that's why I'm here."

Mr O'Rourke, 49, said he had spoken with some of the parents of Tuesday's shooting victims.

"We owe those parents action," he said. "They want us to do something right now. But if we continue to accept this, then it is on us, it's not just the governor's fault."

Asked what could be done legislatively, Mr O'Rourke bristled.

"Do you want a solution? Stop selling AR-15s in the state of Texas. You want a solution? Have universal background checks."

He also said there was broad support for so-called "red flag" warning orders, "which stop a shooting before it happens".

As for Republican arguments that it was inappropriate to discuss political steps on gun reform immediately after a shooting, Mr O'Rourke sharply disagreed.

"Now is the time. Literally, right now," he said.