91³Ô¹ÏÍø

Watch CBS News

California gubernatorial candidates address Swalwell fallout in Sacramento forum

The California Hispanic Chamber of Commerce hosted the first gubernatorial candidate forum since the fallout from the Eric Swalwell sexual assault allegations over the weekend, bringing six candidates together in a packed Sacramento Sheraton Hotel ballroom.

The event took place as another accuser came forward publicly, keeping the controversy at the center of the race and prompting repeated references to Swalwell from candidates on stage.

Republican candidate Steve Hilton said the Swalwell scandal underscores broader concerns about accountability at the highest levels of government.

"We've got to ask ourselves: 'How did we get here?' " he said.

Democratic former Los Angeles Mayor Antonio Villaraigosa said voters misjudged the race early on.

"We went with the shiny object, and we made a mistake," Villaraigosa said.

Former California Controller Betty Yee, also a Democrat, said the controversy has shifted voter focus.

"I think voters are finally focusing," Yee said. "They're focusing because of the scandals."

Former U.S. Health and Human Services Secretary Xavier Becerra said the contest is effectively resetting.

"It's really day one, really, for this campaign for everyone," Becerra said.

The forum focused heavily on affordability, health care, childcare, and California's budget deficit, with candidates outlining competing policy approaches.

"I'm for single-payer healthcare," Democratic candidate Tom Steyer said.

San Jose Mayor Matt Mahan highlighted efforts to expand childcare capacity through community workforce programs.

"We're drafting people from the community to open their own daycare centers," Mahan said.

Yee argued California is ready for a change in leadership.

"I think it's high time," she said. "And I'll tell you, if I were governor, none of this would be tolerated."

Undecided voter Victoria Rivera, who attended the Sacramento forum, said the controversy has made character a central issue in how she evaluates candidates.

"I wasn't really paying attention to the race until after the fact," Rivera said. "If character is being shown, then accountability is also part of that."

County elections officials will begin mailing primary ballots on May 4, less than three weeks away.

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