AU summit seeks urgent action to end AIDS, TB and health inequalities in Africa
Listen to article
3 min listen
Audio reading is not supported on this browser.
Ready
Thanks for listening. Continue with a related story, or tap the speaker icon on the next page to listen.

Kenya and US sign Sh206.9 billion health deal to boost Taifa Care and disease control
Rachael Mutabasi
·
4 days agoRead nextOpens a fresh page.
African leaders will meet in Accra to accelerate efforts to end AIDS and tuberculosis by 2030, strengthen health systems and expand access to quality healthcare across the continent.
African Heads of State and Government will meet in Accra, Ghana, on 21–22 July for an Extraordinary Session of the African Union (AU) Assembly focused on ending AIDS and tuberculosis by 2030, strengthening health systems and advancing universal health coverage across the continent.
Held under the theme, “Advancing Justice, Equity and Universal Health Coverage: Ending AIDS, TB, improving maternal health, addressing endemic non-communicable and neglected tropical diseases and conditions in Africa,” the summit will bring together ministers, AU organs, Regional Economic Communities, health organisations, development partners, civil society groups, youth representatives, the private sector and the media.
The meeting follows a decision adopted during the 38th Ordinary Session of the AU Assembly in February 2025 to convene a dedicated summit on public health. It builds on previous continental commitments, including the development of a fully costed AU Roadmap to 2030 aimed at sustaining the AIDS response, strengthening health systems and improving health security.
More To Read
- Kenya and US sign Sh206.9 billion health deal to boost Taifa Care and disease control
- UHC workers officially shift to county payrolls as government confirms permanent jobs
- Wajir begins construction of Baitulmaal Level 4 Hospital to expand access to healthcare
- Kenya’s AIDS-related deaths drop by 67 per cent in 13 years
- Hospitals given three-month deadline to integrate with SHA digital system
- Accident victims to get free emergency response and treatment for 24 hours under new SHA policy
According to the African Union, the summit seeks to secure a declaration on implementing the AU Roadmap to 2030 and mobilise Member States to accelerate efforts to end AIDS and tuberculosis, reduce preventable maternal deaths, tackle communicable, non-communicable, and neglected tropical diseases, and build resilient health systems.
Leaders are also expected to deliberate on sustainable health financing, local pharmaceutical manufacturing, governance of National Public Health Institutes, health workforce development and stronger regional and international partnerships.
The programme will feature plenary sessions, high-level dialogues, panel discussions, interactive workshops and partner exhibitions.
Latest Stories
- Former IEBC Commissioner Mohamed Abdullahi Sharawe dies
- Teachers’ salaries rise as TSC introduces revised pay structure
- Four terror plots foiled as KDF troops destroy hidden explosives in Lamu
- City Hall unveils plan to raise parking fees from Sh300 to Sh535 per day
Expected outcomes include the adoption of the Monitoring and Evaluation Framework for the AU Roadmap to 2030, renewed political commitment to improving public health, stronger regional cooperation and intensified efforts to ensure universal access to quality healthcare.
The Extraordinary Session is expected to reaffirm Africa’s commitment to achieving the health objectives of Agenda 2063 through coordinated action, sustainable investment and stronger health systems capable of responding to current and emerging public health challenges.
Other Topics To Read
Top Stories Today
- Former IEBC Commissioner Mohamed Abdullahi Sharawe dies
- Teachers’ salaries rise as TSC introduces revised pay structure
- African leaders to unveil new push to end AIDS and TB by 2030
- Four terror plots foiled as KDF troops destroy hidden explosives in Lamu
- City Hall unveils plan to raise parking fees from Sh300 to Sh535 per day
- Senators call for suspension of Sh80 billion Nairobi cooperation agreement over unclear funding
`;
}
return “;
}
function commentActionsMarkup(comment, canComment) {
const likeLabel = comment.liked_by_me ? ‘Liked’ : ‘Like’;
const likeCount = Number(comment.like_count || 0) > 0
? “
: ”;
const likeButton = canComment && comment.status === ‘approved’
? “
: “;
const replyButton = canComment && comment.status === ‘approved’
? “
: ”;
return `
`;
}
function commentMarkup(comment, canComment, isReply = false) {
const pendingBadge = comment.status && comment.status !== ‘approved’
? “
: ”;
const edited = comment.is_edited
? “
: ”;
const repliesHtml = Array.isArray(comment.replies) && comment.replies.length
? `
`
: “;
return `
`;
}
function replyFormMarkup(commentId) {
return `
`;
}
function setNotice(widget, message, type = ‘info’) {
const notice = widget.querySelector(‘[data-role=”notice”]’);
if (!notice) return;
if (!message) {
notice.hidden = true;
notice.textContent = ”;
notice.classList.remove(‘is-error’);
return;
}
notice.hidden = false;
notice.textContent = message;
notice.classList.toggle(‘is-error’, type === ‘error’);
}
function setCount(widget, total) {
const count = widget.querySelector(‘[data-role=”count”]’);
if (!count) return;
const num = Number(total || 0);
count.textContent = num === 1 ? ‘1 comment’ : `${num} comments`;
}
function openReplyBox(widget, commentId) {
widget.querySelectorAll(‘[data-role=”reply-box”]’).forEach(box => {
box.hidden = true;
box.innerHTML = ”;
});
const targetItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
if (!targetItem) return;
const replyBox = targetItem.querySelector(‘[data-role=”reply-box”]’);
if (!replyBox) return;
replyBox.hidden = false;
replyBox.innerHTML = replyFormMarkup(commentId);
const textarea = replyBox.querySelector(‘textarea’);
if (textarea) textarea.focus();
}
function closeReplyBox(container) {
if (!container) return;
container.hidden = true;
container.innerHTML = ”;
}
async function initCommentsWidget(widget) {
const state = {
articleId: Number(widget.dataset.articleId),
loadUrl: widget.dataset.loadUrl,
storeUrl: widget.dataset.storeUrl,
commentsBaseUrl: widget.dataset.commentsBaseUrl,
canComment: widget.dataset.canComment === ‘1’,
page: 1,
perPage: 10,
sort: ‘newest’,
total: 0,
hasMore: false,
busy: false
};
const list = widget.querySelector(‘[data-role=”list”]’);
const loading = widget.querySelector(‘[data-role=”loading”]’);
const empty = widget.querySelector(‘[data-role=”empty”]’);
const loadMoreBtn = widget.querySelector(‘[data-role=”load-more”]’);
const sortSelect = widget.querySelector(‘[data-role=”sort”]’);
const composerForm = widget.querySelector(‘[data-role=”composer-form”]’);
async function loadComments(reset = true) {
if (state.busy) return;
state.busy = true;
setNotice(widget, ”);
loading.hidden = false;
if (reset) {
state.page = 1;
list.innerHTML = ”;
empty.hidden = true;
}
try {
const url = new URL(state.loadUrl, window.location.origin);
url.searchParams.set(‘page’, state.page);
url.searchParams.set(‘per_page’, state.perPage);
url.searchParams.set(‘sort’, state.sort);
const response = await requestJson(url.toString(), {
method: ‘GET’,
headers: {
‘Accept’: ‘application/json’,
‘X-Requested-With’: ‘XMLHttpRequest’
}
});
const items = Array.isArray(response.data) ? response.data : [];
const meta = response.meta || {};
state.total = Number(meta.total || 0);
state.hasMore = !!meta.has_more;
setCount(widget, state.total);
if (reset) {
list.innerHTML = ”;
}
if (!items.length && reset) {
empty.hidden = false;
} else {
empty.hidden = true;
list.insertAdjacentHTML(
‘beforeend’,
items.map(item => commentMarkup(item, state.canComment, false)).join(”)
);
}
loadMoreBtn.hidden = !state.hasMore;
} catch (error) {
if (!list.children.length) {
empty.hidden = false;
empty.textContent = ‘Unable to load comments right now.’;
}
setNotice(widget, error.message || ‘Unable to load comments.’, ‘error’);
} finally {
loading.hidden = true;
state.busy = false;
}
}
async function submitTopLevelComment(form) {
const textarea = form.querySelector(‘textarea[name=”content”]’);
const button = form.querySelector(‘[data-role=”submit-comment”]’);
if (!textarea) return;
const content = textarea.value.trim();
if (!content) return;
const originalText = button ? button.textContent : ”;
try {
if (button) {
button.disabled = true;
button.textContent = ‘Posting…’;
}
const response = await requestJson(state.storeUrl, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({
article_id: state.articleId,
content: content,
source_url: window.location.href
})
});
textarea.value = ”;
if (response?.data) {
list.insertAdjacentHTML(
‘afterbegin’,
commentMarkup(response.data, state.canComment, false)
);
empty.hidden = true;
if ((response.data.status || ”) === ‘approved’) {
state.total += 1;
setCount(widget, state.total);
}
}
setNotice(widget, response.message || ‘Comment posted successfully.’);
} catch (error) {
setNotice(widget, error.message || ‘Unable to post comment.’, ‘error’);
} finally {
if (button) {
button.disabled = false;
button.textContent = originalText || ‘Post comment’;
}
}
}
async function submitReply(form) {
const commentId = Number(form.dataset.commentId || 0);
const textarea = form.querySelector(‘textarea[name=”content”]’);
const button = form.querySelector(‘.ev-comments__reply-submit’);
if (!commentId || !textarea) return;
const content = textarea.value.trim();
if (!content) return;
const originalText = button ? button.textContent : ”;
try {
if (button) {
button.disabled = true;
button.textContent = ‘Posting…’;
}
const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/reply`, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({
article_id: state.articleId,
content: content,
source_url: window.location.href
})
});
if (response?.data) {
const parentItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
if (parentItem) {
const repliesWrap = parentItem.querySelector(‘.ev-comments__replies’);
if (repliesWrap) {
repliesWrap.insertAdjacentHTML(
‘beforeend’,
commentMarkup(response.data, state.canComment, true)
);
}
}
}
closeReplyBox(form.closest(‘[data-role=”reply-box”]’));
setNotice(widget, response.message || ‘Reply posted successfully.’);
} catch (error) {
setNotice(widget, error.message || ‘Unable to post reply.’, ‘error’);
} finally {
if (button) {
button.disabled = false;
button.textContent = originalText || ‘Post reply’;
}
}
}
async function toggleLike(button) {
const commentId = Number(button.dataset.commentId || 0);
if (!commentId) return;
const originalHtml = button.innerHTML;
try {
button.disabled = true;
button.innerHTML = ‘Working…’;
const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/like`, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({})
});
const liked = !!response?.data?.liked;
const likeCount = Number(response?.data?.like_count || 0);
button.classList.toggle(‘is-liked’, liked);
button.innerHTML = `${liked ? ‘Liked’ : ‘Like’} ${likeCount > 0 ? “ : ”}`;
} catch (error) {
button.innerHTML = originalHtml;
setNotice(widget, error.message || ‘Unable to update like.’, ‘error’);
} finally {
button.disabled = false;
}
}
if (composerForm) {
composerForm.addEventListener(‘submit’, function (e) {
e.preventDefault();
submitTopLevelComment(composerForm);
});
}
if (sortSelect) {
sortSelect.addEventListener(‘change’, function () {
state.sort = this.value || ‘newest’;
loadComments(true);
});
}
if (loadMoreBtn) {
loadMoreBtn.addEventListener(‘click’, function () {
if (state.busy || !state.hasMore) return;
state.page += 1;
loadComments(false);
});
}
widget.addEventListener(‘click’, function (e) {
const likeBtn = e.target.closest(‘[data-action=”toggle-like”]’);
if (likeBtn) {
e.preventDefault();
toggleLike(likeBtn);
return;
}
const replyBtn = e.target.closest(‘[data-action=”toggle-reply”]’);
if (replyBtn) {
e.preventDefault();
openReplyBox(widget, Number(replyBtn.dataset.commentId || 0));
return;
}
const cancelReplyBtn = e.target.closest(‘[data-action=”cancel-reply”]’);
if (cancelReplyBtn) {
e.preventDefault();
closeReplyBox(cancelReplyBtn.closest(‘[data-role=”reply-box”]’));
}
});
widget.addEventListener(‘submit’, function (e) {
const replyForm = e.target.closest(‘.ev-comments__reply-form’);
if (replyForm) {
e.preventDefault();
submitReply(replyForm);
}
});
loadComments(true);
}
document.addEventListener(‘DOMContentLoaded’, function () {
document.querySelectorAll(‘.ev-comments’).forEach(initCommentsWidget);
});
})();
Trending

Kenyans withdraw billions from Boma Yangu despite growth in housing savingsNews
|Lucy Mumbi
|1 day ago

ECOWAS backs Ghana’s anti-xenophobia push at AU, endorses reparatory justice agendaAfrica
|Mwangi Maina
|13 hours ago

Former IEBC Commissioner Mohamed Abdullahi Sharawe diesNews
|Lucy Mumbi
|12 minutes ago

Senators call for suspension of Sh80 billion Nairobi cooperation agreement over unclear funding, oversight issuesCity Affairs
|Lucy Mumbi
|3 hours ago

Multi-agency security team recovers 45 stolen cattle, repels bandits in TurkanaNorthern Kenya
|Abdirahman Khalif
|18 hours ago

Madagascar hunger crisis set to worsen, with 3.72 million people at riskAfrica
|Bashir Mbuthia
|1 day ago
<img src="https://publish.eastleighvoice.co.ke/mugera_lock/uploads/2026/07/eastleighvoice-co-ke-2026-july-20-070716.webp" alt="Spain edge Argentina after extra time to win second FIFA World Cup title”>
Spain edge Argentina after extra time to win second FIFA World Cup titleSports
|Erick Kariuki
|4 hours ago

Community mediators trained to resolve disputes before they reach courtNews
|Farhiya Hussein
|12 hours ago

𝐄𝐚𝐬𝐭𝐥𝐞𝐢𝐠𝐡 𝐕𝐨𝐢𝐜𝐞 𝐚𝐭 𝐍𝐢𝐧𝐞 – DCI opens probe into Ol Kalou by-election violenceVideos
|Zawadi Charity
|14 hours ago

Governor Wilber Ottichilo takes over as ODM patron in Vihiga County as Osotsi loses key rolePolitics
|Rachael Mutabasi
|5 hours ago