Connect with us

Alabama

Alabama Baseball Uses Big Eighth Inning To Take Series Finale Against Tennessee | Rocky Top Insider

Published

on

Alabama Baseball Uses Big Eighth Inning To Take Series Finale Against Tennessee | Rocky Top Insider


Photo By Kate Luffman/Tennessee Athletics

Tennessee and Alabama baseball went back-and-forth in Sunday afternoon’s series finale in Tuscaloosa before the Crimson Tide scored three runs in the eighth inning to secure a 7-5 victory.

AJ Russell made his return to the mound and the Vols bats were relatively quiet as Alabama clinched the weekend series against Tennessee.

Here’s everything to know about the Sunday series rubber match.

AJ Russell Returns In Short Outing

Perhaps the best news of the weekend for Tennessee is that talented sophomore pitcher AJ Russell returned to the mound after missing the previous three weeks with side soreness that reared its ugly head in the series opener against UAlbany.

Advertisement

Russell was the Vols’ Friday night starter to open the season and is the most talented pitcher Tennessee has. Tony Vitello gave Russell the ball for the series finale and while it was an unsurprisingly short outing, the tall right-hander was solid in his return.

Russell threw 40 pitches in two innings. It was a shaky first few batters for Russell as he surrendered a single, allowed the runner to advance to second on a balk and then allowed a one-out RBI single.

But the talented sophomore was great from there. He got out of the first inning with a line out and a pop out before sitting down the Crimson Tide in order in the second.

Russell finished his day allowing two hits and one run while striking out two batters. He threw 28 strikes in 40 pitches as he was solid in his return to game action.

More From RTI: Tennessee vs. Alabama Game Three Play-By-Play

Both Bullpens Settle In

After Tennessee scored four runs against Alabama’s bullpen in the third inning and the Crimson Tide answered with two runs in the bottom half of the third and a leadoff home run in the fourth inning it looked like we might be in for a classic Sunday shootout.

Advertisement

But in the middle innings of the game, each bullpen eased into the game and found its footing.

For Alabama, RHP Braylon Myers was fantastic for three innings. In the fourth through six innings, Myers kept Tennessee off the scoreboard and allowed just two baserunners while pounding the strike zone and striking out two batters.

For Tennessee, it was key bullpen reliever Nate Snead. Snead came in with two runners on base and allowed both to score before giving up the solo homer to open up the fourth inning. It wasn’t the best start for the Wichita State transfer, but Snead settled in from there.

Snead got to the eighth inning with just giving up that lone run but that’s when he ran into trouble. More on that in a moment.

The game would have more runs in the final inning, but Snead and Myers turned in strong relief outings to keep the game from turning into a shootout.

Advertisement

Things Get Away From Tennessee In The Eighth Inning

Tennessee held a 5-4 lead entering the eighth inning with Snead starting to wear down. That’s when things got away from the flame throwing right-handed pitcher.

He hit the leadoff batter and allowed a one-out hit that put the leading run on base. Dylan Dreiling almost saved the day making a spectacular leaping catch at the wall for out number two. But Snead couldn’t get the final out as Alabama leadoff batter Gage Miller roped a middle-middle fastball for a no doubt home run to left field.

The home run gave Alabama a 7-5 lead which marked its first lead since the third inning. Tennessee loaded the bases thanks to Alabama defensive miscues in the ninth inning and pulled within one with a RBI walk but couldn’t get the big hit needed to tie the game or take the lead.

After taking the series opener, Tennessee couldn’t close out the weekend series on Saturday or in the closing innings on Sunday.

Final Stats

Up Next

Tennessee returns to Lindsey Nelson Stadium for a Tuesday night midweek matchup against Xavier. First pitch is at 6 p.m. ET.

Advertisement



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