На css с применением скрытого checkbox, либо на js но с применением кнопок? Кнопки для таких вещей кажутся мне более правильными. Но если js не загрузится, или он вообще отключен, нельзя будет посмотреть скрытую информацию. Если же не загрузятся стили, то ничего страшного, вся информация всё равно будет отображена, пускай без оформления, но от пользователя ничего не будет скрыто. Какой подход используете вы, и почему?
JS. Потому что для решения задач нужно выбирать правильный инструмент, а не костыли.
Костыль на input'ах сильно ограничен в силу привязки к структуре DOM.
Вопрос использования именно кнопок — это только о семантике. Вы можете всё и на div'ах сделать. В любом случае нужен JS для логики.
Если у человека отключён JS — то можете вообще такого человека за человека не считать, т. к. 99,5% сайтов требует JS. Ну, может, поиск в Google у него будет работать, конечно…
Но если js не загрузится, или он вообще отключен, нельзя будет посмотреть скрытую информацию.
Значит в начальном положении она должна быть показана. Потом скрыта на js.
Если js есть - будут табы/аккордеон, если js нет - будет простыня.
Альтернатива - ссылки на страницу с развернутой инфой.