Connect with us

Alabama

Decades after violence in Selma spurred the Voting Rights Act, organizers worry about its fate

Published

on

Decades after violence in Selma spurred the Voting Rights Act, organizers worry about its fate


SELMA, Ala. — Sixty-one years after state troopers attacked Civil Rights marchers on the Edmund Pettus Bridge in Selma, thousands are gathering in the Alabama city this weekend, amid new concerns about the future of the Voting Rights Act.

The March 7, 1965, violence that became known as Bloody Sunday shocked the nation and helped spur passage of the landmark legislation that dismantled barriers to voting for Black Americans in the Jim Crow South.

But this year’s anniversary celebrations – events run all weekend and end with a commemorative march across the bridge Sunday – come as the U.S. Supreme Court considers a case that could limit a provision of the Voting Rights Act that has helped ensure some congressional and local districts are drawn so minority voters have a chance to elect their candidate of choice.

“I’m concerned that all of the advances that we made for the last 61 years are going to be eradicated,” said Charles Mauldin, 78, one of the marchers who was beaten that day.

Advertisement

FILE – State troopers hit protesters with billy clubs to break up a civil rights voting march in Selma, Ala., on Sunday, March 7, 1965.

AP Photo/File

Justices are expected to rule soon on a Louisiana case regarding the role of race in drawing congressional districts. A ruling prohibiting or limiting that role could have sweeping consequences, potentially opening the door for Republican-controlled states to redistrict and roll back majority Black and Latino districts that tend to favor Democrats.

Democratic officeholders, civil rights leaders and others have descended on the southern city to pay homage to the pivotal moment of the Civil Rights Movement and to issue calls to action. Like the marchers on Bloody Sunday, they must keep pressing forward, organizers said.

Former state Sen. Hank Sanders, who helped start the annual commemoration, said the 1965 events in Selma marked a turning point in the nation and helped push the United States closer to becoming a true democracy.

Advertisement

“The feeling is a profound fear that we will be taken back – a greater fear than at any time since 1965,” Sanders said.

Tear gas fills the air as state troopers, ordered by Gov. George Wallace, break up a march at the Edmund Pettus Bridge in Selma, Ala., on Sunday, March 7, 1965.

Tear gas fills the air as state troopers, ordered by Gov. George Wallace, break up a march at the Edmund Pettus Bridge in Selma, Ala., on Sunday, March 7, 1965.

AP Photo/File

U.S. Rep. Shomari Figures won election in 2024 to an Alabama district that was redrawn by the federal court. He said what happened in Selma and the subsequent passage of the Voting Rights Act “was monumental in shaping what America looks like and how America is represented in Congress.”

“I think coming to Selma is a refreshing reminder every single year that the progress that we got from the Civil Rights Movement is not perpetual. It’s been under consistent attacks almost since we’ve gotten those rights,” Figures said.

In 1965, the Bloody Sunday marchers led by John Lewis and Hosea Williams walked in pairs across the Selma bridge headed toward Montgomery. Mauldin, then 17, was part of the third pair behind Williams and Lewis.

Advertisement

At the apex of the bridge, they could see the sea of law enforcement officers, including some on horseback, waiting for them. But they kept going. “Being fearful was not an option. And it wasn’t that we didn’t have fear, it’s that we chose courage over fear,” Mauldin recalled in a telephone interview.

“We were all hit. We were trampled. We were tear-gassed. And we were brutalized by the state of Alabama,” Mauldin said.

Copyright © 2026 by The Associated Press. All Rights Reserved.



Source link

Advertisement
Continue Reading
Click to comment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Alabama

Transfer edge rusher giving new Alabama starting OL a challenge

Published

on

Transfer edge rusher giving new Alabama starting OL a challenge





Photo comes via Alabama athletics

The work to become a top three to top five defense across the board in college football for the University of Alabama starts in spring practice.

What Desmond Umeozulu will bring to the Alabama defense

Kalen DeBoer returned experience – especially in the secondary – but his coaching staff also grabbed much needed players from the NCAA transfer portal. One of those athletes looks to develop his name into a marquee edge rusher.

Advertisement

Desmond Umeozulu, a transfer from South Carolina, means a lot to Kane Wommack. The Crimson Tide’s defensive coordinator spoke highly of the Maryland native early in practice. He called Umeozulu a ‘big win’ for Alabama out the portal.

Transfer edge rusher giving new Alabama starting OL a challenge

Alabama Linebacker Desmond Umeozulu (9) in action during the Scrimmage at Thomas-Drew Practice Fields in Tuscaloosa, AL on Friday, Mar 27, 2026.

“It was really fortunate for us to get Desmond Umeozulu,” Wommack said.

The 6-foot-6, 253-pounder has worked at the ‘Wolf’ position in practice.

He looks to emerge as a second edge rusher to help Yhonzae Pierre. Umeozulu has been giving the first-team offensive line a challenge. Jackson Lloyd, a redshirt freshman, has taken notice of the talented transfer.

Advertisement

“I have been going against them all for a while,” Lloyd said Monday about the challenge of facing Alabama’s pass rushers in practice. “They are all great pass rushers. Dez [Umeozulu] coming in … He has been good. He’s giving me a good look.”

Umeozulu totaled 30 tackles across 36 career games at South Carolina.

He also had 2.5 tackles for loss and 1.5 sacks in three years of developing behind names such as Bryan Thomas Jr. and Dylan Stewart. Umeozulu is part of iron sharpening iron for the Tide.

BREAKING: Former South Carolina Edge commits to Alabama

It will be interesting to watch him perform on A-Day.

Advertisement

*Get the BEST Alabama football insider information, message board access, and recruiting coverage today! SIGN UP HERE to unlock our subscriber-only content!*

Stephen M. Smith is a team writer for Touchdown Alabama Magazine.  You can “like” him on Facebook or “follow” him on Twitter, via @CoachingMSmith.



Stephen Smith is a 2015 graduate of the University of Alabama.
He is a seasoned writer that has covered Alabama football for Touchdown Alabama Magazine since 2009. Smith has extensive knowledge within the program, which has made him among the most respected journalist in his field. Throughout his career, Smith has been featured on ESPN and several other marquee outlets as an analyst.

Advertisement






Source link

Continue Reading

Alabama

Alabama Football Spring Practice Report before A-Day Scrimmage

Published

on

Alabama Football Spring Practice Report before A-Day Scrimmage


TUSCALOOSA, Ala.— Alabama football is just a few days away from an open scrimmage in front of the public for the 2026 A-Day Game, but until then, the media got one last peak at what the Crimson Tide’s been working on this spring.

The media was allowed to watch two of Alabama’s practice periods during Tuesday morning’s practice. Here are some of BamaCentral’s practice notes and observations:

Practice report

  • One quarterback will have to be the first one to take the field on Saturday for A-Day, but Alabama was not giving any hints on who that might be during practice. During the periods the media could see, the quarterbacks were always throwing in groups of three. Austin Mack and Keelon Russell were always part of the first group, and the freshmen QBs Tayden Evan-Kaawa and Jett Thomalla rotated in with that group.
  • During the drills where all three were throwing at the same time, the quarterbacks first worked on shorter routes like slants on different parts of the field. They then worked on deep routes to all segments of the field.
  • Based on the groupings of wide receives, it seems pretty clear that Ryan Coleman-Williams, Lotzeir Brooks and NC State transfer Noah Rogers will be Alabama’s starters at receiver with Rico Scott, Derek Meadows and Cederian Morgan also in the mix.
  • Alabama head coach Kalen DeBoer said at the beginning of spring practice that senior safety Bray Hubbard would be limited this spring. He was not wearing a black jersey on Tuesday and did not appear to be limited. He did not have any noticeable braces or wraps on his body.
  • DeBoer was keeping a watchful eye over the quarterbacks during the media viewing period.
  • The cornerbacks started with some press drills off the snap that also involved containing inside leverage. Red Morgan, who has moved all around the secondary the past two years between safety, HUSKY and cornerback, had a really solid rep.
  • The CBs then worked on a coverage in traffic drill, where two receivers lined up behind each other and one corner was lined up roughly five yards behind the other. After the ball was snapped, the receivers went in opposite directions and the CBs had to quickly decide and follow. Starter Zabien Brown handled this with ease.
  • Perhaps the most exciting drill from the CBs was one where they pressed against each other and went stride for stride before cutting the route and hauling in an interception. Starter Dijon Lee used his renowned 6-foot-4 frame to disrupt the pass, and his catch radius made it look easy.
  • Alabama defensive backs coach Maurice Linguist was animated throughout each of the drills. He commended multiple players, but also scolded a couple with hopes that their next rep is much better.
  • The Alabama Wolf linebackers worked on a block shedding drill. This involved a swim move on a dummy pad at the line of scrimmage and then pushing another pad downward in the backfield. It wasn’t necessarily a full-speed drill, but rather more about getting the technique down.
  • South Carolina transfer Desmond Umeozulu used some force in the Wolf linebacker drills. Alabama Wolf linebackers coach Christian Robinson showed his approval for Umeozulu after a couple of reps.
  • The Alabama offensive line spent its early portion of practice working on one-on-one blocking with improving technique and drive as the focus. The starters were difficult to tell due to this, but Jackson Lloyd led the majority of the drills along with center transfer Racin Delgatty.
  • The linemen rotated through drills keeping their pads low and staying under the chute. Texas transfer Nick Brooks impressed with his hands as he violently moved his men every time he got a chance to take a rep. Brooks has worked at left guard and right tackle this spring, providing new offensive line coach Adrian Klemm with an interesting chess piece.
  • The Alabama wolves came into view in the midst of the offensive line drills with Yhonzae Pierre leading the group. The Crimson Tide outside linebackers had Pierre, Dezmond Umeozulu, Justin HIll and Jamarion Matthews cycling through drills with Christian Robinson barking instructions, urging his group to play with violence. One of the assistants shouted for Matthews to break the blocking dummy saying the program would just buy another to replace it. Kane Wommack stood to observe the drill and smiled commending the violence and force the four were bringing to the morning practice. 

Practice footage

Advertisement

Sign up to our free newsletter and follow us on Twitter/X, FacebookYouTubeInstagramThreads and Blue Sky for the latest news.





Source link

Continue Reading

Alabama

Tuscaloosa librarian Katy Busby named finalist for Alabama Elementary Teacher of the Year

Published

on

Tuscaloosa librarian Katy Busby named finalist for Alabama Elementary Teacher of the Year


Tuscaloosa librarian Katy Busby named finalist for Alabama Elementary Teacher of the Year

Advertisement

WHAT INFORMATION THAT WE GIVE YOU ON OUR FREE APP AND OF COURSE ONLINE AS WELL. TUSCALOOSA EDUCATORS EARNING STATEWIDE RECOGNITION FOR HER IMPACT IN THE LIBRARY. TUSCALOOSA MAGNET SCHOOLS ELEMENTARY LIBRARIAN KATIE BUSBY IS NOW ONE OF THE TOP 16 FINALISTS FOR ALABAMA ELEMENTARY TEACHER OF THE YEAR. SHE WAS NAMED THE DISTRICT’S ELEMENTARY TEACHER OF THE YEAR LAST YEAR, BEFOR

Advertisement

Tuscaloosa librarian Katy Busby named finalist for Alabama Elementary Teacher of the Year

Updated: 8:46 PM CDT Apr 6, 2026

Editorial Standards

Advertisement

A Tuscaloosa educator is earning statewide recognition for her impact in the library.Tuscaloosa Magnet Schools Elementary librarian Katy Busby is now one of the top 16 finalists for Alabama Elementary Teacher of the Year.Busby was named the district’s Elementary Teacher of the Year last year, before advancing to the state competition.The winner will be announced next month. Your neighborhood: Local coverage from WVTM 13

A Tuscaloosa educator is earning statewide recognition for her impact in the library.

Advertisement

Tuscaloosa Magnet Schools Elementary librarian Katy Busby is now one of the top 16 finalists for Alabama Elementary Teacher of the Year.

Busby was named the district’s Elementary Teacher of the Year last year, before advancing to the state competition.

The winner will be announced next month.

Advertisement

Your neighborhood: Local coverage from WVTM 13

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

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.wvtm13.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.wvtm13.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

`;
}

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’;

Advertisement

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’);

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

Advertisement

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) {}

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;

Advertisement

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.wvtm13.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.wvtm13.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;
}

Advertisement

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

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

Advertisement

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

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