91³Ô¹ÏÍø

Watch CBS News

Palo Alto considering closing railroad crossing where students have died by suicide

Palo Alto is calling a series of suicides in the city a public health crisis, and the city council debated a controversial way to save lives Wednesday night.

This comes as four students from Palo Alto High School have used railroad crossings to take their own lives in the last two years. The proposal was to close the Churchill Avenue crossing, which is right next to Palo Alto High School, but the community is divided on what is the best way to protect kids.

Mare Lucas has one mission. 

"If we could just save one life, that's all we're asking," Lucas said.

She has become an advocate for youth mental health after losing her son to suicide in 2017. He was just 18 years old.

"The pain of living without my son is unbearable, and I cannot bear the thought of another kid would be in that much pain or another adult," she said. "Or another person would be in that much pain. Another family would have to live without that loss. I just think if there was one person's mind I changed today, then that was worth it."

Lucas is hoping Palo Alto residents will open their minds to the possibility of closing the Churchill railroad crossing by Palo Alto High School, where a student died by suicide in February. There was extensive public comment on the traffic it would cause by diverting roughly 8000 cars and 700 students to other roads daily. Plus, there was a concern about police and fire services being slowed down.

"There's no way to close that particular crossing without having both severe traffic impacts and severe bike and ped implications," Nadia Niak, a member of the Expanded Community Advisory Panel, said. "That's not just a traffic issue. It's a safety issue."

Niak says that before the crossing closes, steps have to be taken to make the streets safer.

"There's not enough time to do it," she said. "There's not the money to do it. Even the mitigations they can do in the quickest amount of time would take years and cost a lot of money."

The city has placed security guards at the crossing to provide human connections to those contemplating suicide. Lucas wants people to think of creative ways to save lives in Palo Alto.

"Instead of automatically being a no, it's very frustrating that people can't just think about how could I change my behavior," Lucas said. "How can we change things in this town? How might we address this?"

The city council did not make any final decisions Wednesday night. Instead, it moved to hear this issue again on May 11.

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