Connect with us

Alabama

Ella Langley, Alexis Herman, southern accents: Down in Alabama

Published

on

Ella Langley, Alexis Herman, southern accents: Down in Alabama


Rising star

Hope Hull’s Ella Langley is the Academy of Country Music’s New Female Artist of the Year, reports AL.com’s Mary Colurso.

The awards ceremony comes later, but Langley found out she was a winner while she was on stage at a festival in Knoxville. Miranda Lambert came on a big video screen to tell her the news. Langley managed to choke out a “God Bless America.”

Advertisement

She’s also up for ACM Female Artist of the Year and six more awards related to the song and video for “You Look Like You Love Me,” her duet with fellow Alabamian Riley Green of Jacksonville.

Incoming ‘Jeopardy!’ money

Some education-related projects in Mobile are getting a boost thanks to W. Kamau Bell’s big win in “Celebrity Jeopardy!” reports AL.com’s Lawrence Specker.

Bell is a comedian and the host of the CNN show “United Shades of America.”

On “Celebrity Jeopardy!” he won a million dollars for the charity of his choice. His was DonorsChoose, which fulfills online classroom wish lists made by teachers.

Advertisement

Among the locations Bell chose was Mobile, where he spent time during his childhood and where his dad still lives.

Projects funded by Bell’s winnings include special-needs playground equipment for Orchard Elementary and novels for small-group study at Dodge Elementary. According to DonorsChoose, the money going to the Mobile schools totals about $53,000 and will fund 72 projects across 22 schools.

RIP Alexis Herman

Alexis Herman, a member of President Clinton’s cabinet and a native of Mobile, passed away Friday, reports AL.com’s Patrick Darrington.

Herman was the first Black U.S. Secretary of Labor, a position she held from 1997 to 2001.

Advertisement

She was director of the Women’s Bureau at age 29, in 1977, later served as CEO of the 1992 Democrat National Convention, and then joined Clinton’s transition team when he won the White House. Along the way she did work promoting diversity hiring in the private sector.

Congressman Shomari Figures, a Mobile Democrat, called Herman a “true hometown hero.”

Said Figures: “She was a fighter for civil rights and women’s rights, a giant in DC political circles, especially amongst Black women, and an all-around dynamic woman.”

Alexis Herman was 77 years old.

Friendly talk

Advertisement

We have a new survey to report on.

We like surveys because we know they are almost always accurate. At least in the moment they’re conducted. Involving the exact respondents who responded. Who were prompted with questions that were worded exactly so.

With at least that much confidence, a study Censuswide conducted for the call-answering service Answering Service Care found that Americans consider the Southern accent to be the friendliest accent in the U.S., reports AL.com’s Margaret Kates.

And why not? You can’t say “Y’all come” in just any dialect.

Note that only 38% of people found the southern accent friendly, but that was higher than any other. The Hawaiian accent came in second at 34%. Texas was tied for third, but we all know where most of that accent migrated from.

Advertisement

Alabama News Quiz answers/results

Overall results:

  • Five out of five: 27.8%
  • Four out of five: 28.4%
  • Three out of five: 25.4%
  • Two out of five: 13.7%
  • One out of five: 4.5%
  • None out of five: 0.3%

This sports figure with ties to our state was recently selected by Time Magazine as one of the 100 Most Influential People in the World.

  • Jalen Hurts (CORRECT) 60.9%
  • Charles Barkley 31.0%
  • Bruce Pearl 4.2%
  • Rece Davis 3.9%

What are we most likely to see come out of the Alabama State Legislature this session?

  • An expansion of the new school-choice law (CORRECT) 84.2%
  • Teacher salary raises 10.4%
  • A new charter school in Barbour County 4.8%
  • A new graduation requirement to take three hours of College Football History 0.6%

Early next month, President Trump is expected to visit a college in this Alabama city.

  • Tuscaloosa (CORRECT) 98.8%
  • Auburn 0.6%
  • Troy 0.6%
  • Andalusia 0.0%

Alabama’s oldest hotel, the St. James Hotel, which originally opened in 1837 as the Brantley Hotel, is expected to reopen next month under new management in this city.

  • Selma (CORRECT) 62.1%
  • Mobile 23.0%
  • Montgomery 14.3%
  • Childersburg 0.6%

A new music festival is being planned for Birmingham in honor of …

  • Sun Ra (CORRECT) 54.3%
  • Hank Williams 27.5%
  • Big Mama Thornton 16.4%
  • The Beastie Boys 1.8%

More Alabama News

Born on This Date

In 1926, To Kill a Mockingbird author Nelle Harper Lee of Monroeville.

In 1952, keyboardist Chuck Leavell of Birmingham and Tuscaloosa. He’s played with The Allman Brothers Band, The Rolling Stones and many others.

Advertisement

In 1954, former Congressman and state lawmaker Mo Brooks.

The podcast



Source link

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