91³Ô¹ÏÍø

Watch CBS News

Vandals damage memorial at Robb Elementary School in Uvalde, reigniting grief and anger

Vandals damaged the memorial at Robb Elementary School in Uvalde this week, which was established to honor the 19 children and two teachers who lost their lives in the 2022 massacre, the second-deadliest elementary school shooting in U.S. history.

White wooden crosses bearing the victims' names and placed by grieving families to honor those lost were vandalized, according to the Uvalde Police Department.

US-VOTE-ELECTION-TEXAS
Crosses set up to honor those who lost their lives during the Robb Elementary School shooting in Uvalde, Texas on November 8, 2022. MARK FELIX/AFP /AFP via Getty Images

"This act is not only senseless, it is cruel, and it has inflicted more pain on families who have already endured unimaginable loss," Uvalde Police Chief Homer Delgado in a social media post. "To the families and all those hurting: We see you, we stand with you, and we share your heartbreak."

Delgado said police were "diligently working" to identify the culprits. No immediate details on the vandalism or the investigation were provided. 

"We will not tolerate these continued attacks on the dignity of our community, and we will hold those responsible accountable," Delgado said.

Robb Elementary has remained shuttered since the May 24, 2022, shooting. The gunman, Salvador Ramos, an 18-year-old former student, was fatally shot by law enforcement after he barricaded himself in a classroom.

Delgado said the school site is "not just a location. It is a symbol of sorrow, resilience, and remembrance. To violate it is to violate the spirit of Uvalde itself."

"We remain committed to protecting this community — with compassion, with integrity, and with unwavering resolve," Delgado said.

Uvalde is a city of about 15,000 people, located about 80 miles west of San Antonio.

In April, Uvalde city leaders approved a $2 million settlement for families of the shooting victims, marking the first financial compensation from numerous lawsuits which have been filed.

A scathing report released by Texas lawmakers determined that more than 370 officers from various agencies responded to the shooting, but law enforcement waited 73 minutes to confront the gunman. A separate 2024 Justice Department report also found "a series of major failures" in the response. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });