91³Ô¹ÏÍø

Watch CBS News

Former Uvalde officer did his job during 2022 attack, his lawyers tell jurors in closing remarks

A Texas prosecutor urged a jury Wednesday to convict one of the first police officers on the scene of the deadly Robb Elementary School attack in Uvalde and send a message that law enforcement must fulfill their duty to protect when a gunman threatens children.

Adrian Gonzales, a former Uvalde schools officer, is the first officer to stand trial over the hesitant police response to the 2022 massacre, when a teenage gunman killed 19 fourth-graders and two teachers in one of the deadliest school shootings in U.S. history.

Gonzales, 52, sat at the defense table during closing arguments as special prosecutor Bill Turner told jurors the 10-year police veteran had a duty to act even if it meant entering the building alone.

"We're expected to act differently when talking about a child that can't defend themselves," Turner said. "If you have a duty to act, you can't stand by while a child is in imminent danger."

As jurors, Turner said, their verdict will set the bar over whether "it's appropriate to stand outside, hearing 100 shots, while children are being slaughtered."

Jason Goss, an attorney for Gonzales, began his closing statements by telling jurors his client was not responsible for the attack.

"The monster that hurt those kids is dead," Goss said. "It is one of the worst things that ever happened."

The jury began deliberations early Wednesday afternoon.

Gonzales has pleaded not guilty to 29 counts of child abandonment or endangerment for the 19 students killed and 10 others who were wounded. He faces up to two years in prison if convicted.

Gonzales did not take the stand in his own defense before both sides rested their case Tuesday.

Prosecutors allege that Gonzales,who had led an active shooter response training course two months before the shooting, abandoned his training and did not try to stop gunman Salvador Ramos before he entered the school.

Gonzales, however, has insisted he didn't freeze in the chaotic early moments and never saw the gunman. His lawyers insist three officers on the other side of the school saw the gunman still outside and didn't fire a shot. Body camera footage shows Gonzales being among the first group of officers to enter a shadowy and smoky hallway trying to reach the killer in a classroom.

Gonzales was one of 376 federal, state and local officers swarmed to the school as the attack unfolded. It would take more than an hour for a tactical team to breach a classroom and kill the gunman.

Only Gonzales and former Uvalde schools police chief Pete Arredondo have been criminally charged for the delayed response. Arredondo was indicted on similar charges on the same day as Gonzales in 2024, but his trial has not yet been set.

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=fd53910ecf4604072044ab7c46d9b028'; 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(); } }); }); }); });