Close Menu
    Facebook X (Twitter) Instagram
    • Home
    • Contact Us
    • About Us
    • Privacy Policy
    • Terms Of Service
    • Advertisement
    Sunday, July 19
    Facebook X (Twitter) Instagram Pinterest Vimeo
    ABS Africa TV
    • Breaking News
    • Trending
    • Africa News
    • World News
    • Features
    • Technology
    • More
      • Sports
      • Politics
      • Culture
      • Lifestyle
      • Travel
      • Business
      • Environment
      • Legal
      • Health
      • Cameroon
      • Ambazonia
      • AfroSingles
      • Environ/Climate
      • Editorial
      • The Leak Magazine
    • Donate
    Subscription
    ABS Africa TV
    Home»Travel»20 pupils killed in bus crash while returning from school tour in eastern Uganda
    Travel

    20 pupils killed in bus crash while returning from school tour in eastern Uganda

    Martin AkumaBy Martin AkumaJuly 18, 2026No Comments9 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Share
    Facebook Twitter LinkedIn Pinterest Email
    Post Views: 8

    20 pupils killed in bus crash while returning from school tour in eastern Uganda

    Wreckage from the Kapchorwa crash that claimed the lives of 20 pupils and an adult. (Photo: Handout)

    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.

    Death toll rises to 24 in Ugandan school bus crash, 23 admitted

    Mary Wambui

     · 

    7 hours agoRead nextOpens a fresh page.

    The pupils of King David Junior School, Ndejje, were returning from a study tour on Thursday night when the bus they were travelling in reportedly developed a mechanical fault at around 8:00 pm.

    The Uganda Police Force has confirmed the death of 20 pupils and an adult following a road crash yesterday evening at Chekwatit Village, Kimawa Parish, Kawowo Sub-county, Kapchorwa District.
    The pupils of King David Junior School, Ndejje, were returning from a study tour on Thursday night when the bus they were travelling in reportedly developed a mechanical fault at around 8:00 pm. The driver is said to have lost control before the vehicle crashed.
    “We wish to confirm that a total of 21 people, comprising 20 pupils and one adult, have so far been confirmed dead. The crash involved an Isuzu bus, registration number UA 108BQ, belonging to King David Junior School, Ndejje, Makindye Division, Kampala. The driver has not yet been identified,” Michael Kananura of the Directorate of Traffic and Road Safety said.

    More To Read

    • Death toll rises to 24 in Ugandan school bus crash, 23 admitted
    • Uganda suspends school trips after Kapchorwa bus crash kills 20 pupils
    • School bus carrying 56 learners involved in accident along Kabarnet–Marigat Road
    • Six killed as matatu, trailer collide head-on along Nakuru-Eldoret highway
    • Ambasa Coach bus catches fire after collision in Mwingi, Kitui County
    • Nyandarua DCI boss John Rioba killed in road accident involving nine vehicles

    The police added that several survivors, whose identities are yet to be established, were rushed to Kaserem Health Centre IV, Kapchorwa General Hospital, and Mbale Regional Referral Hospital for treatment.
    “Preliminary investigations indicate that the school bus had taken pupils on an educational tour to Sipi Falls in Kapchorwa District. While returning from the tour, the driver reportedly lost control of the vehicle, which veered off the road, struck a large stone along the roadside, and overturned. The crash claimed the lives of one adult male and 20 pupils, while three adult males and several juveniles sustained injuries,” he added.
    The bodies of the deceased have been taken to Kapchorwa Mortuary pending identification and postmortem examinations.

    Latest Stories

    • Legacy Football Academy makes history with Gothia Cup U14 title
    • Police arrest fifth suspect in Mombasa Marikiti mob killing
    • No new season without clear leadership framework, Premier League clubs warn FKF
    • Study says Egypt’s Aswan High Dam accelerated Nile Delta erosion, land subsidence

    Police said investigations into the exact cause of the crash are ongoing.
    “The Uganda Police Force extends its deepest condolences to the bereaved families, the management of King David Junior School, and all those affected by this tragic incident. We also wish the injured a quick and full recovery,” the UPF added.

    Other Topics To Read

    Top Stories Today

    • The untold struggles of families with sickle cell disease amid lifelong uncertainty
    • Police arrest fifth suspect in Mombasa Marikiti mob killing
    • No new season without clear leadership framework, Premier League clubs warn FKF
    • Study says Egypt’s Aswan High Dam accelerated Nile Delta erosion, land subsidence
    • Airstrike kills 25 Al-Shabaab in Hiiraan as four terrorists surrender to Somali forces
    • Emmanuel Wanyonyi misses 800m podium finish at London Diamond League

    `;
    }

    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

    Morocco back Ouahbi until 2030 as Atlas Lions shift focus to home World CupNews
    |Erick Kariuki
    |1 day ago

    Kenya secures Sh43.5 billion AfDB loan for economic inclusion and climate resilience

    Kenya secures Sh43.5 billion AfDB loan for economic inclusion and climate resilienceBusiness
    |Alfred Onyango
    |5 hours ago
    From cotton classics to high-tech icons: The evolution of World Cup-winning jerseysNews
    |Erick Kariuki
    |10 hours ago
    Sifuna vows to press on despite ODM SG removal, Senate shake‑upNews
    |Rachael Mutabasi
    |5 hours ago

    Police arrest fifth suspect in Mombasa Marikiti mob killing

    Police arrest fifth suspect in Mombasa Marikiti mob killingCoast
    |Farhiya Hussein
    |37 minutes ago
    The untold struggles of families with sickle cell disease amid lifelong uncertaintyHealth
    |Charity Kilei
    |3 hours ago
    Death toll rises to 24 in Ugandan school bus crash, 23 admittedNews
    |Mary Wambui
    |7 hours ago
    Katiba Institute, Muite demand answers over alleged quarantine of seven Americans at Laikipia Air BaseNews
    |Rachael Mutabasi
    |8 hours ago
    Elon Musk loses trillionaire status as SpaceX slide wipes billions off fortuneTechnology
    |Margaret Wanjiru
    |8 hours ago
    President Ruto’s official website hacked, cyber agencies handling breach – KabogoNews
    |Margaret Wanjiru
    |6 hours ago

    crash killed pupils Returning while
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Martin Akuma
    • Website

    Related Posts

    United Kingdom Tourism Defies Global Uncertainty as Summer Travel Holds Strong and Businesses Pin Hopes on a Bigger 2027 Boom – New Update You Should Know

    July 19, 2026

    Brazil, South Africa and Belarus Enter Thailand’s Global Tourism Spotlight as Bangkok, Phuket, Chiang Mai and Ayutthaya Lead the Country’s Bold Thirty Three Million Visitor Tourism Ambition by 2027

    July 19, 2026

    India Medical Tourism 2026 Set for a Global Healthcare Boom as AI, Digital Visas, and Rising Tier-2 Cities Like Jaipur, Amritsar, Lucknow, and More Redefine Patient Travel – New Update You Need to Know

    July 19, 2026
    Leave A Reply Cancel Reply

    Search
    Latest Post

    Ambitious ECOWAS Pipeline Initiative Links Nigeria and Morocco | Science

    July 19, 2026

    “Born here?”: Pearl Thusi’s backing of Chidimma sparks Mzansi outrage

    July 19, 2026

    UPDATED: Spain beat Argentina 1

    July 19, 2026

    United Kingdom Tourism Defies Global Uncertainty as Summer Travel Holds Strong and Businesses Pin Hopes on a Bigger 2027 Boom – New Update You Should Know

    July 19, 2026

    Enzo Fernandez and Argentina beaten by Spain in World Cup final

    July 19, 2026

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    • Facebook
    • Twitter
    • Pinterest
    • Instagram
    • YouTube
    • TikTok
    ABS TV and ABS Network News is a leading Pan-African 24/7 broadcasting network delivering nonstop news, talk shows, lifestyle programs, and digital media content worldwide through Satellite, Streaming Platforms, and Roku TV.
     
    Based in the United States, we connect Africa to the world while empowering creators, journalists, and brands through innovative media and broadcasting services.
    Facebook X (Twitter) Pinterest WhatsApp Instagram

    Our Picks

    Ambitious ECOWAS Pipeline Initiative Links Nigeria and Morocco | Science

    “Born here?”: Pearl Thusi’s backing of Chidimma sparks Mzansi outrage

    UPDATED: Spain beat Argentina 1

    Most Popular

    United Kingdom Tourism Defies Global Uncertainty as Summer Travel Holds Strong and Businesses Pin Hopes on a Bigger 2027 Boom – New Update You Should Know

    Enzo Fernandez and Argentina beaten by Spain in World Cup final

    ECOWAS Backs Nigeria-Morocco Gas Pipeline Project | Science

    © 2026 Copyright. All Rights Reserved by ABSAFRICATV
    • Privacy Policy
    • Terms of Services

    Type above and press Enter to search. Press Esc to cancel.

    We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.