91³Ô¹ÏÍø

Watch CBS News

X sues New York over law requiring social media companies to report how they handle offensive posts

Elon Musk's social media platform, X, is suing New York over a state law that requires the company to report how it handles offensive content. 

New York Gov. Kathy Hochul , and it takes effect later this year. 

X claims the law infringes on free speech and on a 1996 federal law that, among other things, lets internet platforms moderate posts as they see fit.

New York is improperly trying to "inject itself into the content-moderation editorial process" by requiring "politically charged disclosures," X Corp. argues in the suit. The company is based in Bastrop, Texas. 

"The state is impermissibly trying to generate public controversy about content moderation in a way that will pressure social media companies, such as X Corp., to restrict, limit, disfavor or censor certain constitutionally protected content on X that the state dislikes," says the suit, filed in federal court in Manhattan.

New York Attorney General Letitia James' office said in a statement Wednesday that it was reviewing the complaint and will "stand ready to defend the constitutionality of our laws."

What to know about the New York law in question

The law requires social media companies to report twice a year on whether and how they define hate speech, racist or extremist content, disinformation and some other terms. The platforms also have to detail their content moderation practices and data on the number of posts they flagged, the actions they took, the extent to which the offending material was seen or shared, and more.

Sponsors Sen. Brad Hoylman-Sigal and Assembly Member Grace Lee, both Democrats, have said the measure will make social media more transparent and companies more accountable.

The law applies broadly to social media companies. But X is among those that have faced intense scrutiny in recent years, and in a 2024 letter to an X lobbyist, the sponsors said the company and Musk, in particular, have a "disturbing record" that "threatens the foundations of our democracy."

The lawmakers wrote that before Musk became, for a time, a close adviser and cost-cutter in President Trump's administration. The two billionaires have since feuded and, perhaps, made up.

Since taking over the former Twitter in 2022, Musk, in the name of free speech, has dismantled the company's Trust and Safety advisory group and stopped enforcing content moderation and hate speech rules that the site followed. He has restored the accounts of conspiracy theorists and incentivized engagement on the platform with payouts and content partnerships.

Outside groups have since documented a rise in hate speech and harassment on the platform. X sued a research organization that studies online hate speech — that lawsuit was dismissed last March.

The New York legislation took a page from a similar law that passed in California — and drew a similar lawsuit from X.

Last fall, a panel of federal appellate judges portions of the California law, at least temporarily, on free speech grounds. The state subsequently , agreeing not to enforce the content-moderation reporting requirements.

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