91³Ô¹ÏÍø

Watch CBS News

10 Mile Road construction near Woodward in Royal Oak creates traffic nightmare

Drivers who commute through Royal Oak on 10 Mile Road near Woodward Avenue are dealing with major traffic issues this week.

The area is already heavily traveled, but now the congestion is bumper-to-bumper as road crews block off several lanes for construction, leaving drivers with an even longer commute.

screenshot-2026-04-16-170621.png
CBS Detroit

"For me, it's 25-30 (minutes) that way, and it's close to an hour coming back, and you factor in rush hour, it can be even longer," said Royal Oak resident Jeremy.

"It's an inconvenience that's for sure, and I'll definitely be happy when it's over," Ferndale resident Paul Gaughan said. 

The work is not a Royal Oak project. Instead, it's part of the Michigan Department of Transportation's I-696 Restore the Reuther project as crews work to repair the bridges on this stretch of road.

"As we rebuild the freeway, we have to rebuild the ramps and the bridges. The two service drives on each side of I-696 at Woodward, those bridges have to be repaired, so we have to get traffic off, weight off the bridges," said MDOT spokesperson Diane Cross.

screenshot-2026-04-16-170635.png
CBS Detroit

Cross says all lanes are closed off except the right turn lane and one through lane, which has created a traffic nightmare for commuters.

"Crazy because everything is closed. It just takes more time, and you gotta know where you can go and where you can't go," said Huntington Woods resident Louise.

To relieve the congestion, Cross says MDOT will add a second through lane when the weather cooperates.

screenshot-2026-04-16-170654.png
CBS Detroit

"What we are going to do is open a second through lane, so there will be a right turn lane and then two through lanes on each side, but we need good weather before we can put down pavement markings. We expect it's going to ease the backups a bit," Cross said. 

This portion of the project will last through the month of May, but construction won't stop there.

"In late May, we're going to close the westbound I-696 ramp to Woodward, which will take even more traffic out of that area. It is going to be a tough couple of months. You just have to plan extra time and no more than one way to get where you're going," said Cross.

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