Connect with us

Iowa

Iowa’s book ban law reaches a federal appeals court

Published

on

Iowa’s book ban law reaches a federal appeals court


A panel of federal appeals court judges will choose what happens next for Iowa’s education law that bans books with sexual content in school libraries and prohibits instruction related to gender identity and sexual orientation for grades K-6.

In oral arguments held in a St. Paul, Minnesota, courtroom Thursday, an attorney for the State of Iowa asked the judges to lift a preliminary injunction that has blocked enforcement of SF 496 since late December.

That ruling was made in response to two separate legal challenges that argue the law silences LGBTQ students from expressing their identities and restricts students’ free access to information.

Iowa Solicitor General Eric Wessan told the three-judge panel with the Eighth Circuit Court of Appeals that the state has the ability to tell schools to remove books that show or describe sexual acts, as defined in criminal code, because “library curation is government speech.”

Advertisement

“The public schools are themselves representative of the state and the values that the state seeks to inculcate in children as part of its pedagogical goal of raising its future citizens,” Wessan said.

Matt Sieren

/

Iowa Public Radio

Advertisement
The list of banned books includes The Giver, Animal Farm, Adventures of Huckleberry Finn, To Kill A Mockingbird, Farhenheit 451 and The Diary of Anne Frank.

When District Court Judge Stephen Locher blocked enforcement of the law, he called it a “bulldozer” because so many books could be banned. The Des Moines Register has found nearly 1,000 different titles were removed from school libraries since the law first took effect. Those include titles by authors John Green and Jodi Picoult who are part of the lawsuit involving the publisher Penguin House, as well as well-known books like 1984, The Handmaid’s Tale and The Kite Runner.

Attorney Nathan Maxwell of Lambda Legal, which is part of a lawsuit with the ACLU of Iowa representing LGBTQ students, said the law’s definition of what is age appropriate is simply too broad.

“The problem with this law is it says if it’s not appropriate for a first grader it’s therefore not appropriate for a senior in high school. And so those seniors in high school are losing out on information,” Maxwell told reporters after the appeals court hearing. “There’s something special about a school library, which is where students go specifically to learn. Having access in school libraries is substantively different than being able to buy [a book] anywhere in the world.”

Judge questions scope of challenge

The lower court’s injunction also applies to a ban on instruction related to LGBTQ topics in kindergarten through sixth grade. The state argues both major pieces of the law should be enforced as the legal challenges proceed.

In questions he raised during oral arguments, Judge James Loken appeared to criticize the groups suing the state for bringing a facial challenge — that is, a claim that the law is entirely unconstitutional based on how it was written — instead of challenging how the law has been applied.

Advertisement

“This could easily have gone to a — probably a series, certainly more than one — as-applied challenge, from which, the judicial interpretation of this statute and how school boards should apply it, would become clear to educators in Iowa,” Loken said.

“I question how many it would take,” replied ACLU of Iowa attorney Thomas Story. “I can’t see any because I can’t see a way to read this law without it not making sense or not being constitutional.”

Speaking after the hearing, Story warned against guessing a judge’s position on the case based on the questioning in courtroom.

Christy Hickman, an attorney for the Iowa State Education Association, said the courts need to weigh in on the law because guidance from state education officials is limited and school districts don’t seem to agree on how it is supposed to work.

“If you look at the extreme differences across school districts and the number and types of books that have been removed, it shows you that there is a lot of confusion and ambiguity and interpretation,” Hickman said. “If we had to start all over, and start suing individual school districts, think about the court and school and public resources that go into that. I hope that is not where we end up.”

Advertisement

What happens if the book ban law is enforced

The law includes potential consequences for school districts or teachers who are found to have kept books on library shelves that contain sexual content.

One violation warrants a written warning from the Iowa Department of Education. But after two or more violations, the case would be referred to the Board of Educational Examiners, which certifies teachers and administrators to work in Iowa schools. The BOEE could bring up the case for disciplinary action.

The Eighth Circuit Court of Appeals must decide on the current preliminary injunction before the two cases against the education law continue.

Attorneys involved in the case would not comment on their strategy if the injunction is lifted, but Maxwell said they would continue to stand behind students and others impacted by the law.

“We will continue to fight for the students and families in Iowa to be able to access this information and to be able to speak freely about who they are in school and anywhere,” Maxwell said.

Advertisement





Source link

Iowa

Iowa house passes bill requiring parental consent for minors to receive HPV vaccine

Published

on

Iowa house passes bill requiring parental consent for minors to receive HPV vaccine


DES MOINES, Iowa (IOWA CAPITAL DISPATCH) – The Iowa House passed legislation Tuesday requiring parental consent for minors to receive certain vaccines associated with sexually transmitted diseases — a measure that Democrats said could lead to higher cancer rates in Iowa.

Iowa requires parental consent for minors to receive a vast majority of vaccinations. But there’s currently a carveout in Iowa law for human papillomavirus (HPV) and hepatitis B vaccines. Iowans under age 18 can consent, without parental approval, for these vaccines, as they specifically deal with sexually transmitted diseases and infections.

Senate File 304, which passed on a 63-29 vote — would remove this exemption, requiring parental consent for minors to receive HPV and hepatitis B vaccines. Rep. Austin Baeth, D-Des Moines, an internal medicine physician, said the measure was a “pro-cancer bill, period.”

At subcommittee meetings on the measure, advocates representing health care providers and organizations have said HPV is linked with multiple forms of genital cancer, including cervical, penile, anal cancer and vaginal cancers — and that studies have found the HPV vaccine in particular has been linked with much lower instances of cervical cancer especially when a person is vaccinated before age 17.

Advertisement

“We have, with these vaccines, a way to save people’s lives,” Baeth said. “And in a state with the fastest-rising cancer rates, the second highest cancer rate overall, we should be doing more to prevent cancer, not less.”

Rep. Jeff Shipley, R-Fairfield, who supported the bill, said the measure was not limiting access to the HPV vaccine, but ensuring that parents approve of these vaccines being administered to young children.

Rep. Megan Srinivas, D-Des Moines, said the reason why this carveout was introduced in Iowa law in the first place was because there were instances where a parent may not be a trusted adult in a child’s life — including in situations of child abuse or child sexual assault.

“This conversation about needing to always trust our adults does not take the bad actors into account,” Srinivas said. “And what we should be keeping in mind, as we are passing legislation, are the most vulnerable in our society, which are the children that we have been entrusted to protect. By removing one of the most important things we can do in protecting children who might be the victims, we are making a bad decision, and that is why I urge you to vote no on this.”

Rep. Austin Harris, R-Moulton, disagreed with the assertion that the measure was “pro-cancer” — saying it only subjects the HPV and Hepatitis B vaccines to the same requirements as other vaccines.

Advertisement

“Are we pro-polio because we require parental consent?” Harris said. “Pro-measles, pro-mumps, everything else? And I take it personally as someone who has a mother, who is a breast cancer survivor, to be accused of saying, ‘I’m pro-cancer.’”

The measure heads to Gov. Kim Reynolds’ desk for final approval.



Source link

Advertisement
Continue Reading

Iowa

Are tornadoes in Iowa possible today? Here’s what forecasters say

Published

on

Are tornadoes in Iowa possible today? Here’s what forecasters say


play

  • Severe storms are expected to hit Iowa again Tuesday, bringing the possibility of tornadoes, large hail, and damaging winds.
  • The National Weather Service has issued an Enhanced Risk for parts of Iowa, indicating a higher chance of organized severe thunderstorms.
  • Forecasters warn that strong tornadoes and giant hail are possible with the most intense storms.
  • The severe weather threat is expected to continue through the week, with another strong system anticipated on Friday.

Severe storms are expected to sweep across Iowa again in the afternoon of Tuesday, April 14, with forecasters warning of all severe weather hazards possible — including tornadoes, large hail and damaging winds — as multiple rounds of storms move through the region through midweek.

The National Weather Service Storm Prediction Center has placed parts of Iowa under an Enhanced Risk (Level 3 of 5) for Tuesday, signaling a higher likelihood of organized severe thunderstorms, including supercells capable of producing strong tornadoes and very large hail.

Advertisement

What is the weather today in Iowa?

Forecasters expect storms to develop late Tuesday afternoon into the evening as a stalled frontal boundary sits across eastern Iowa into Wisconsin. A surge of warm, moisture-rich air moving north from the Missouri Valley will collide with steep mid-level lapse rates and strong wind shear, creating an environment supportive of severe storms.

If storms can form, they are expected to quickly become supercells.

“Large to giant hail and an intense tornado will be possible with the strongest storms,” the Storm Prediction Center noted, especially where wind shear is maximized near surface boundaries.

Are tornadoes in Iowa possible?

Yes — tornadoes are possible across Iowa Tuesday afternoon and evening, though forecasters say the setup is still uncertain and depends on how storms evolve during the day, according to the National Weather Service.

Advertisement

A key factor is a “cap” in the atmosphere that could delay or limit storm development, making the exact timing and placement of storms difficult to pin down early.

Even if afternoon storms remain scattered, activity is expected to increase later Tuesday night as a low-level jet strengthens over the Plains and Midwest. That pattern should help trigger more widespread thunderstorms, especially across southern and central Iowa.

Some of these storms may become elevated above the surface overnight, which could slightly reduce the tornado threat at that point. However, that setup would still support hazards such as heavy rainfall, frequent lightning and hail, particularly in stronger storm clusters.

Advertisement

Still, forecasters say all severe weather hazards remain on the table.

Tornadoes are possible, and a few could be strong if storms stay isolated and develop into discrete supercells.

Large to giant hail is also a concern within the strongest rotating storms that form along boundaries in the warm sector.

Damaging wind gusts may become more widespread later in the evening if storms organize into larger clusters or storm complexes moving across the state.

Advertisement

Storms continue through Friday

Additional severe weather is possible on Wednesday as another upper-level disturbance moves into the region. The exact risk will depend on how Tuesday’s storms evolve and how much instability remains in place.

If conditions recover, supercells with all hazards — including tornadoes — could redevelop across parts of Iowa during peak daytime heating. For now, forecasters have maintained a Slight Risk (Level 2 of 5) for Wednesday.

The active pattern does not end midweek. Another strong system is expected on Friday, bringing a new round of severe storms across much of Iowa ahead of a fast-moving cold front.

Behind it, temperatures will drop sharply over the weekend, with highs falling into the 40s and 50s and a hard freeze possible in northern areas by Saturday night.

Advertisement

Iowa weather radar

Iowa weather watches and warnings

Here are the watches and warnings for the area.

Stay informed. Get weather alerts via text.

Brandi D. Addison covers weather across the United States as the Weather Connect Reporter for the USA TODAY Network. She can be reached at baddison@gannett.com.



Source link

Continue Reading

Iowa

Tornadoes and hail reported across northern Iowa counties

Published

on

Tornadoes and hail reported across northern Iowa counties


Tornadoes and hail reported across northern Iowa counties

Advertisement

KCCI EIGHT NEWS AT TEN STARTS NOW. GOOD EVENING. IT HAS BEEN AN ACTIVE EVENING IN NORTHERN IOWA. ACTIVE WEATHER EVENING. THIS PICTURE SENT TO US BY STEVE FITCHETT SHOWS A TORNADO ON THE GROUND NEAR GILLETT GROVE. YOU CAN SEE THE DEBRIS KICK UP THERE. THIS WAS IN CLAY COUNTY. THIS WAS A TORNADO WARNED STORM NEAR THAT AREA. TONIGHT. A TORNADO WARNED STORM ALSO MOVED THROUGH KOSSUTH COUNTY THIS EVENING. THAT’S A LIVE LOOK RIGHT NOW FROM ALGONA. THANKFULLY THE TORNADO WATCH FOR THE COUNTY JUST EXPIRED AT THE TOP OF THE HOUR, SO IT SHOULD BE A MUCH CALMER NIGHT AHEAD. THE STORM ROLLED THROUGH SANBORN THIS AFTERNOON. TAKE A LOOK AT THIS. ALYSSA BECKER SENT US THESE PICTURES OF THE HAIL THAT FELL THERE TODAY. THAT’S A BIG HAIL AND DOES SOME DAMAGE. ABSOLUTELY. WE SAW EVEN THE LIVE LOOK FROM ALGONA. YOU SAW SOME LIGHTNING THERE. SO EVEN FOR THESE AREAS THAT ARE OUT OF KIND OF THE ROUGH STUFF THERE, JASON, STILL A LITTLE BIT OF A, YOU KNOW, I DON’T KNOW, THINGS THAT CATCHES THEIR EYE TONIGHT. ABSOLUTELY. THERE’S

Advertisement

Tornadoes and hail reported across northern Iowa counties

Updated: 11:16 PM CDT Apr 13, 2026

Editorial Standards

Advertisement

Severe storms swept through northern Iowa Monday evening, bringing tornadoes and hail to several counties.A tornado was spotted on the ground near Gillett Grove in Clay County, as shown in a photo sent by Steve Fitchett. The area experienced a tornado-warned storm Monday night. A tornado-warned storm also moved through Kossuth County this evening. A live view from Algona showed the conditions, and the tornado watch for the county expired at 10 p.m.Earlier in the day, the storm rolled through Sandborn, bringing hail to the area. Alyssa Becker shared pictures of the hail from the scene.

Severe storms swept through northern Iowa Monday evening, bringing tornadoes and hail to several counties.

Advertisement

A tornado was spotted on the ground near Gillett Grove in Clay County, as shown in a photo sent by Steve Fitchett. The area experienced a tornado-warned storm Monday night.

A tornado-warned storm also moved through Kossuth County this evening. A live view from Algona showed the conditions, and the tornado watch for the county expired at 10 p.m.

Earlier in the day, the storm rolled through Sandborn, bringing hail to the area. Alyssa Becker shared pictures of the hail from the scene.

Advertisement
Advertisement

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

Advertisement

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

Advertisement

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.kcci.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

Advertisement

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

Advertisement

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

Advertisement

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

Advertisement

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

Advertisement

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

Advertisement

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.kcci.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

Advertisement

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

Advertisement

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

Loading more articles…



Source link

Advertisement
Continue Reading

Trending