Skip to content

Conversation

@yeshwanth235
Copy link
Contributor

@yeshwanth235 yeshwanth235 commented Oct 29, 2025

Summary

Removed all Vuetify components and migrated to KDS components in /faq
Created StudioAccordion and StudioAccordionItem for accordion.

Video: link

References

Fixes 5502

Reviewer guidance

Need full page testing for /faq in web and mweb

@yeshwanth235
Copy link
Contributor Author

Screenshot 2025-10-29 at 10 18 24 PM

I found a broken link while testing.

@MisRob
Copy link
Member

MisRob commented Oct 31, 2025

Thanks for your continued work @yeshwanth235, very high-level, it's aligned with expectations. We will assign someone for a detailed review next week.

@MisRob
Copy link
Member

MisRob commented Oct 31, 2025

@yeshwanth235 Could you merge latest unstable to this branch? It should help with the failing checks.

@MisRob
Copy link
Member

MisRob commented Oct 31, 2025

And thanks for reporting the link, I will find out where it was supposed to go.

@MisRob
Copy link
Member

MisRob commented Nov 3, 2025

@yeshwanth235 as for the broken link, the right target for now will be https://kolibri.readthedocs.io. Would you like to update it here, or should I take care of it in another PR?

@yeshwanth235
Copy link
Contributor Author

@yeshwanth235 as for the broken link, the right target for now will be https://kolibri.readthedocs.io. Would you like to update it here, or should I take care of it in another PR?

Updated the link @MisRob. I have taken care

@MisRob MisRob changed the title [Remove Vuetify from Studio] Content Library Catalog - Frequently asked questions page changes [Remove Vuetify from Studio] Content Library Catalog - Frequently asked questions page Nov 4, 2025
Copy link
Member

@akolson akolson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @yeshwanth235! Great work on this PR. Could you please take some time to implement the accessibility requirements outlined in the issue? It looks like they haven’t been addressed yet. Once that’s done, I’ll be able to do a more comprehensive review of the changes as a whole. Thanks!

@yeshwanth235
Copy link
Contributor Author

Hi @yeshwanth235! Great work on this PR. Could you please take some time to implement the accessibility requirements outlined in the issue? It looks like they haven’t been addressed yet. Once that’s done, I’ll be able to do a more comprehensive review of the changes as a whole. Thanks!

Sure, will check and update

@MisRob MisRob requested a review from akolson December 2, 2025 11:26
type="button"
:aria-expanded="showAccordionItem.toString()"
:aria-controls="id"
class="studio-accordion-header"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like the focus ring for the accordions is yellow 🙂

Image

We could easily resolve this by adding our KDS outline using a computed property and using it here additionally;

<button
  ...
  :class="someComputedPropName"
  class="studio-accordion-header"
....
....
computed: {
  someComputedPropName() {
    return this.$computedClass({
      ':focus': { ...this.$coreOutline, outlineOffset: 0 },
    });
  },
}

Copy link
Member

@akolson akolson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @yeshwanth235! Great work on migrating the accordions to KDS in this pr! Here's a few issues I picked up so we can have a more solid implementation that is accessible

  1. Although the page is responsive, it appears the text alignment has regressed.
Before (Studio/hotfixes) After (Implementation)
Image Image
  1. I noticed that a regular <button> was used to implement the accordion. I’m wondering if using KButton with appearance="basic-link"—and customizing it through appearanceOverrides—might be feasible. This could remove the need to use $coreOutline, since KButton is already accessible. This is just a thought and not a blocker for the progress of this PR unless it turns out to be practical.

  2. I've also added a few a11y comments to consider.

:id="id"
type="button"
:aria-expanded="showAccordionItem.toString()"
:aria-controls="id"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. We have a binding of the id on the button but not on the panel being controlled. aria-controls must reference the id of the element that is being shown/hidden (the panel). Can't seem to see any suggestion of this in contentcuration/contentcuration/frontend/shared/views/StudioAccordionItem.vue

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be worth adding the aria-labelledby to the panel so screen readers can know the panel's label. Optionally we could use the role="region" for better semantics.

},
id: {
type: String,
default: 'studio-accordion',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because this isn't set and is defaulted to studio accordion, the aria relationships break due to ID duplication

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Remove Vuetify from Studio] Content Library Catalog - Frequently asked questions page

3 participants