Nineteen young children and two adults have died in a shooting at a primary school in south Texas.
The gunman opened fire at Robb Elementary School – which teaches children aged seven to 10 – in the city of Uvalde before he was killed by law enforcement, officials said.
The 18-year-old suspect had a handgun, an AR-15 semi-automatic rifle, and high-capacity magazines, investigators say.
The teenager is suspected of shooting his grandmother before the rampage.
Local media report he may have been a high school student in the area.
Uvalde Consolidated Independent School District Chief of Police Pete Arredondo said the shooting began at 11:32 local time on Tuesday, and that investigators believe the attacker “did act alone during this heinous crime”.
Texas Governor Greg Abbott said the shooter, whom he named as Salvador Ramos, abandoned a vehicle before entering the school to “horrifically, incomprehensibly” open fire.
Two children killed in the shooting have been identified by US media. Family members confirmed the deaths of 10-year-olds Xavier Lopez and Amerie Jo Garza in statements on Tuesday night.
Angel Garza said on Facebook that his daughter Amerie had been killed.
“My little love is now flying high with the angels above. Please don’t take a second for granted. Hug your family. Tell them you love them,” he said.
One of the adults killed was a teacher named in US media as Eva Mireles. Her page on the school district’s website said she has a daughter in college and loved running and hiking.
Nearly 500 pupils are enrolled in the predominantly Hispanic school around 85 miles (135km) west of the city of San Antonio.
The Associated Press news agency reports that a US Border Patrol official who was nearby when the shooting began rushed into the school and shot and killed the gunman, who was behind a barricade.
Border Patrol is a federal agency that guards US ports of entry. Uvalde, which is fewer than 80 miles from the border with Mexico, is home to a Border Patrol station.
Two border agents were reportedly shot in an exchange with the gunman. One agent was shot in the head, officials say, adding that both were now in a stable condition in hospital.
According to CBS News, the attacker was wearing body armour as he carried out the attack. Another 18-year-old who is suspected of attacking a grocery store in Buffalo, New York, on 14 May was also wearing body armour and carrying a semi-automatic rifle – both of which are commercially available in the US.
The Uvalde Memorial Hospital posted on Facebook earlier that 13 children had been taken to hospital “via ambulances or buses”.
A 66-year-old woman and a 10-year-old girl were in a critical condition at a hospital in San Antonio, University Health hospital officials said.
This is a profoundly shocking tragedy, yet in America it is also depressingly familiar. The grief and sympathy being expressed around the country is genuine. But no one is genuinely surprised that this could happen.
There have already been 27 school shootings this year alone. Young school children routinely rehearse what to do if a gunman enters their classroom.
It’s only 10 days since ten people were killed in a mass shooting in New York.
Politicians recognise this a problem almost unique to America, where guns have overtaken car crashes as the leading cause of death for children and teenagers. But it’s a problem that politics seem incapable of solving. Deeply entrenched views on gun control are not changed in response to events like the tragedy in Uvalde.
“Why do we keep letting this happen?” asked President Biden. “Why are we willing to live with this carnage?”
But there is no sign that Democrats will get any closer to passing tighter gun control legislation. Some Republicans are already accusing them of using this latest school shooting to cynically further their own political objectives
Robb Elementary School will join the roll call of school shootings along with Sandy Hook and the Parkland shooting. The killing of innocent schoolchildren has reignited the debate over guns in America, but has not brought it any closer to a resolution
As evening fell police remained outside the community centre in Uvalde braving an intense rainstorm.
Earlier, cries and sobs could be heard from outside as family members who gathered there received the devastating news that their children had been killed.
Others were asked to give DNA samples to help identify some of the young victims.
Just a few blocks from the Robb Elementary school, a small vigil was held for the victims and survivors of the attack.
Karla Bohman’s voice cracked as she told the group about a family friend whose young daughter, a student at the school, was among those still unaccounted for.
“They don’t know if she’s in surgery or one of the fatalities, but they know she’s a victim of some sort because she’s missing,” Bohman cried. “I can’t believe this.”
Cheryl Juhasz, a lifelong resident of Uvalde, quietly wept during the prayer.
“You can’t comprehend evil like this. No matter where it happens, but it’s harder when it happens at home.”
School district superintendent Hal Harrell said the school year had been ended early in the wake of the shooting.
In a speech from the White House, US President Joe Biden said he was “sick and tired” of responding to mass shootings, as he called for gun control.
“How many scores of little children who witnessed what happened – see their friends die, as if they’re in a battlefield, for God’s sake,” he said. “They’ll live with it the rest of their lives.”
He ordered that flags at the White House and other US federal buildings be flown at half-mast in honour of the victims in Uvalde.
School shootings have become recurring emergencies in the US, with 26 recorded last year, according to EdWeek, an education trade publication.
Active shooter lockdown drills are a common part of the school curriculum, from primary to high school.
The 2012 shooting at Sandy Hook Elementary School in Connecticut was the deadliest such attack. Twenty of the 26 victims were between the ages of five and six.
Speaking on the floor of the US Senate in Washington DC on Tuesday, Connecticut Democratic Senator Chris Murphy begged his colleagues to pass gun control legislation.
“These kids weren’t unlucky,” he said. “This only happens in this country. Nowhere else, nowhere else do little kids go to school thinking that they might be shot that day.”
But Texas Senator Ted Cruz, a Republican, rejected the calls for gun control. He said restricting the rights of “law-abiding citizens… doesn’t work. It’s not effective. It doesn’t prevent crime.”
Guns overtook car crashes to become the leading cause of death for US children and teenagers in 2020, according to data released by the Centers for Disease Control and Prevention (CDC) last month.
On Monday, an FBI report found that “active shooter” rampage attacks have doubled since the coronavirus began in 2020.