Bird
Raised Fist0
Bootsrapmarkup~30 mins

Carousel indicators in Bootsrap - Mini Project: Build & Apply

Choose your learning style10 modes available
Bootstrap Carousel Indicators
📖 Scenario: You want to create a simple image carousel on a webpage to showcase three pictures. You will use Bootstrap's carousel component and add clickable indicators so users can see which slide is active and jump to any slide.
🎯 Goal: Build a Bootstrap carousel with three slides and add the correct carousel indicators below it. The indicators should highlight the active slide and allow navigation between slides.
📋 What You'll Learn
Use Bootstrap 5 carousel structure
Create exactly three carousel items with placeholder images
Add carousel indicators with three buttons
Make sure the first indicator is active initially
Use correct data attributes for indicators to control the carousel
💡 Why This Matters
🌍 Real World
Carousels are common on websites to showcase images, products, or promotions in a small space with user-friendly navigation.
💼 Career
Knowing how to implement Bootstrap carousels with indicators and controls is useful for front-end web development roles that involve UI design and user experience.
Progress0 / 4 steps
1
Create the basic carousel structure with three slides
Write the HTML to create a div with class carousel slide and id myCarousel. Inside it, add a div with class carousel-inner containing three div elements with class carousel-item. The first carousel-item should also have the class active. Inside each carousel-item, add an img tag with src set to https://via.placeholder.com/800x400?text=Slide+1, Slide+2, and Slide+3 respectively, and alt text as Slide 1, Slide 2, and Slide 3.
Bootsrap
Hint

Remember to add the active class only to the first carousel-item. Use the placeholder image URLs exactly as given.

2
Add the carousel indicators container
Below the div with class carousel-inner, add a div with class carousel-indicators inside the div with id myCarousel. This container will hold the indicator buttons.
Bootsrap
Hint

Place the carousel-indicators div directly inside the main carousel div, after the carousel-inner div.

3
Add three indicator buttons inside the indicators container
Inside the div with class carousel-indicators, add three button elements. Each button should have type="button", data-bs-target="#myCarousel", and data-bs-slide-to attributes set to 0, 1, and 2 respectively. The first button should also have the class active and the attribute aria-current="true". Each button should have an aria-label attribute with values Slide 1, Slide 2, and Slide 3 respectively.
Bootsrap
Hint

Make sure the first button has the active class and aria-current="true". Use the exact attribute names and values.

4
Add the carousel controls for previous and next navigation
After the div with class carousel-indicators, add two button elements for carousel controls. The first button should have class carousel-control-prev, type="button", data-bs-target="#myCarousel", and data-bs-slide="prev". Inside it, add a span with class carousel-control-prev-icon and aria-hidden="true", and a span with class visually-hidden containing the text Previous. The second button should be similar but with class carousel-control-next, data-bs-slide="next", and inner spans for next icon and text Next.
Bootsrap
Hint

Use the exact classes and attributes for the control buttons. The visually hidden spans help screen readers understand the buttons.

Practice

(1/5)
1. What is the main purpose of carousel indicators in Bootstrap?
easy
A. To show which slide is active and allow users to select slides
B. To add captions to each slide
C. To control the speed of the carousel
D. To add navigation arrows to the carousel

Solution

  1. Step 1: Understand the role of carousel indicators

    Carousel indicators are small buttons or dots that show which slide is currently visible.
  2. Step 2: Identify user interaction purpose

    They also let users click to jump to a specific slide.
  3. Final Answer:

    To show which slide is active and allow users to select slides -> Option A
  4. Quick Check:

    Carousel indicators = show active slide + select slides [OK]
Hint: Indicators show active slide and let users pick slides [OK]
Common Mistakes:
  • Confusing indicators with captions
  • Thinking indicators control speed
  • Mixing indicators with navigation arrows
2. Which HTML element is recommended for Bootstrap carousel indicators to ensure accessibility?
easy
A. <button>
B. <div>
C. <a>
D. <span>

Solution

  1. Step 1: Identify accessible element for interaction

    Buttons are interactive elements that support keyboard and screen reader accessibility by default.
  2. Step 2: Bootstrap documentation recommendation

    Bootstrap uses <button> elements for carousel indicators to ensure proper ARIA roles and keyboard focus.
  3. Final Answer:

    <button> -> Option A
  4. Quick Check:

    Use <button> for accessible carousel indicators [OK]
Hint: Use <button> for accessible clickable indicators [OK]
Common Mistakes:
  • Using <div> which is not keyboard accessible
  • Using <a> without href causing accessibility issues
  • Using <span> which is not interactive
3. Given this snippet inside a Bootstrap carousel:
<div class="carousel-indicators">
  <button type="button" data-bs-target="#myCarousel" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
  <button type="button" data-bs-target="#myCarousel" data-bs-slide-to="1" aria-label="Slide 2"></button>
  <button type="button" data-bs-target="#myCarousel" data-bs-slide-to="2" aria-label="Slide 3"></button>
</div>

What will happen when the second button is clicked?
medium
A. The carousel will move to the first slide
B. Nothing will happen because the button lacks a class
C. The carousel will move to the second slide
D. The carousel will move to the third slide

Solution

  1. Step 1: Understand data-bs-slide-to attribute

    The attribute data-bs-slide-to="1" means the button targets the slide with index 1 (second slide, zero-based).
  2. Step 2: Identify button click effect

    Clicking this button moves the carousel to the second slide regardless of class presence.
  3. Final Answer:

    The carousel will move to the second slide -> Option C
  4. Quick Check:

    data-bs-slide-to="1" moves to second slide [OK]
Hint: data-bs-slide-to index matches slide number starting at 0 [OK]
Common Mistakes:
  • Confusing slide index starting at 1 instead of 0
  • Thinking class 'active' is required for button to work
  • Assuming no action without aria-current attribute
4. Identify the error in this carousel indicators code:
<div class="carousel-indicators">
  <button type="button" data-bs-slide-to="0" aria-label="Slide 1"></button>
  <button type="button" data-bs-slide-to="1" aria-label="Slide 2"></button>
  <button type="button" data-bs-slide-to="2" aria-label="Slide 3"></button>
</div>

What is missing that will prevent the indicators from working properly?
medium
A. Missing class="active" on all buttons
B. Missing data-bs-target attribute on buttons
C. Missing type="submit" on buttons
D. Missing aria-current="true" on all buttons

Solution

  1. Step 1: Check required attributes for carousel indicators

    Each indicator button must have data-bs-target pointing to the carousel's ID to link the button to the carousel.
  2. Step 2: Identify missing attribute impact

    Without data-bs-target, Bootstrap cannot know which carousel to control, so indicators won't work.
  3. Final Answer:

    Missing data-bs-target attribute on buttons -> Option B
  4. Quick Check:

    data-bs-target links buttons to carousel [OK]
Hint: Always add data-bs-target to indicator buttons [OK]
Common Mistakes:
  • Confusing data-bs-target with data-bs-slide-to
  • Thinking type="submit" is needed
  • Believing all buttons need class active
5. You want to create a carousel with 4 slides and indicators. Which is the correct way to mark the third indicator as active and accessible?
hard
A. <button type="button" data-bs-target="#carouselExample" data-bs-slide-to="2" aria-label="Slide 3"></button>
B. <button type="button" data-bs-target="#carouselExample" data-bs-slide-to="3" class="active" aria-current="true" aria-label="Slide 4"></button>
C. <button type="button" data-bs-target="#carouselExample" data-bs-slide-to="3" aria-label="Slide 3"></button>
D. <button type="button" data-bs-target="#carouselExample" data-bs-slide-to="2" class="active" aria-current="true" aria-label="Slide 3"></button>

Solution

  1. Step 1: Understand zero-based slide indexing

    The third slide has index 2 because counting starts at 0 (0,1,2,3 for 4 slides).
  2. Step 2: Identify correct attributes for active indicator

    The active indicator must have class="active" and aria-current="true" for accessibility.
  3. Step 3: Match aria-label to slide number

    The aria-label should say "Slide 3" to match the third slide.
  4. Final Answer:

    <button type="button" data-bs-target="#carouselExample" data-bs-slide-to="2" class="active" aria-current="true" aria-label="Slide 3"></button> -> Option D
  5. Quick Check:

    Index 2 + active class + aria-current = correct active indicator [OK]
Hint: Active indicator uses zero-based index with class and aria-current [OK]
Common Mistakes:
  • Using slide index 3 for third slide instead of 2
  • Omitting aria-current for accessibility
  • Not adding class active to active indicator
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard