Faits :
A.
B._ et C._ sont locataires d'un appartement propriété de la Fondation A._. Tel est aussi le cas de D._, E._, F._ et G._. Les deux appartements sont au bénéfice de subventions fédérales au sens de la LCAP (loi fédérale du 4 octobre 1974 encourageant la construction et l'accession à la propriété de logements, RS 843).
B.
Le 19 février 2014, les locataires B._ et C._ ont ouvert action contre la bailleresse devant le Tribunal des baux du canton de Vaud, concluant à ce que les décomptes des frais accessoires 2009/10 à 2011/12 soient corrigés selon précisions à fournir en cours d'instance, à ce qu'il soit constaté qu'aucune convention spéciale au sens de l'art. 257a al. 2 CO n'a été conclue au sujet des frais accessoires facturés et enfin, à ce que la bailleresse soit condamnée au remboursement immédiat de 15'679 fr. 91, correspondant à dix ans de frais accessoires payés à tort. Le 28 février 2014, les locataires D._, E._, F._ et G._ ont également ouvert action contre la bailleresse devant la même autorité, avec des conclusions identiques. Les deux causes ont été jointes.
La bailleresse a conclu principalement à l'irrecevabilité des demandes, au motif qu'elles seraient de la compétence exclusive de l'Office fédéral du logement (OFL). A titre subsidiaire, elle a conclu au rejet.
Par décision incidente du 21 octobre 2014, le Tribunal des baux a admis sa compétence pour connaître des demandes. Le 27 avril 2015, statuant sur appel de la bailleresse, la Cour d'appel civile du Tribunal cantonal vaudois a confirmé cette décision.
C.
La bailleresse (ci-après: la recourante) saisit le Tribunal fédéral d'un recours en matière civile, dans lequel elle conclut à ce que les demandes soient déclarées irrecevables et à ce que les locataires (ci-après: les intimés) soient éconduits d'instance et invités à saisir l'OFL. Les intimés concluent au rejet du recours. Recourante et intimés ont de leur propre chef déposé une seconde écriture. L'autorité précédente s'est référée à son arrêt.
Considérant en droit :
1.
L'arrêt attaqué est une décision incidente sur la compétence, rendue par une juridiction cantonale de dernière instance statuant sur appel; la valeur litigieuse atteint manifestement le seuil de 15'000 fr. requis pour les causes de droit du bail à loyer. La voie du recours en matière civile est ouverte (art. 74 al. 1 let. a, art. 75 al. 1 et art. 92 LTF).
2.
Les dispositions civiles relatives à la contestation des loyers abusifs ne s'appliquent pas aux locaux d'habitation en faveur desquels des mesures d'encouragement ont été prises par les pouvoirs publics et dont le loyer est soumis au contrôle d'une autorité (art. 253b al. 3 CO). Les loyers d'appartements bénéficiant ou ayant bénéficié d'une aide fédérale en vertu de la LCAP sont, durant une période déterminée, soumis à une surveillance officielle exercée par l'OFL (art. 45 et 54 LCAP); les locataires peuvent faire contrôler par l'OFL la conformité de leur loyer ou les adaptations de leur loyer (art. 17a OLCAP, RS 843.1). En 1998, la cour de céans a jugé que l'OFL était également compétent pour trancher les litiges relatifs aux frais accessoires. Elle a estimé que la distinction entre loyer et frais accessoires présente un certain "caractère artificiel", que la ventilation entre le loyer et les frais accessoires n'est pas toujours identique, qu'exiger des locataires d'habitations subventionnées par les pouvoirs publics et soumises à une surveillance officielle la mise en oeuvre de deux procédures différentes pour contester le loyer et les frais accessoires serait non seulement source de complications inutiles, mais aussi susceptible de conduire à des décisions contradictoires (ATF 124 III 463 consid. 4b/dd).
Depuis le 1 er octobre 2003, date de l'entrée en vigueur de la LOG (loi fédérale du 21 mars 2003 encourageant le logement à loyer ou à prix modérés, RS 842), les prescriptions sur le contrôle des loyers fixées par la LOG s'appliquent aussi aux litiges survenant dans le cadre de la LCAP (art. 59 al. 5 LOG). Selon ces prescriptions, les locataires peuvent en tout temps demander un contrôle du loyer; ce contrôle est de la compétence de l'OFL (art. 54 al. 1 et 2 LOG); en revanche, les autorités de conciliation prévues par le code des obligations sont compétentes pour contrôler les frais accessoires (art. 54 al. 4 LOG; cf. art. 59 al. 5 phr. 2 LOG). Cette règle habilitant les autorités civiles à contrôler les frais accessoires de logements au bénéfice d'une aide fédérale a été introduite dans l'intention délibérée de modifier le régime de compétence découlant de la jurisprudence. Selon le Conseil fédéral, le loyer et les frais accessoires sont clairement séparés et les mesures d'encouragement visent uniquement le loyer; un contrôle séparé des loyers et des frais accessoires apparaît donc opportun et conforme au droit (Message du 27 février 2002, ch. 2.8.1, FF 2002 2649, 2696).
Les frais accessoires sont dus pour les prestations qui sont fournies par le bailleur ou un tiers en rapport avec l'usage de la chose (art. 257a al. 1 CO) et qui ne sont pas couvertes par le loyer, à la différence des charges financières, courantes et d'entretien. Les frais accessoires ne sont à la charge du locataire que si cela a été convenu spécialement (art. 257a al. 2 CO). Si le bailleur omet de prévoir dans le contrat de bail la facturation des frais accessoires au locataire de manière conforme aux exigences légales, il doit les prendre à sa charge en faisant appel au rendement sur ses fonds propres, voire à son patrimoine. La cour de céans a jugé que cette réglementation est aussi applicable aux locaux d'habitation en faveur desquels des mesures d'encouragement ont été prises par les pouvoirs publics et dont le loyer est soumis au contrôle d'une autorité; elle a en particulier relevé qu'il importait peu à cet égard de savoir si, au regard de l'art. 38 LCAP, les frais accessoires peuvent être intégrés dans le loyer (ATF 135 III 591 consid. 4.2.3).
3.
La recourante soutient que le présent litige ne porte pas sur le montant de frais accessoires dont il serait acquis qu'ils sont dus en sus du loyer, mais sur la possibilité même de facturer des frais accessoires aux locataires, en sus du loyer. Or, selon la recourante, trancher cette dernière question relèverait de la compétence des autorités administratives, et non des autorités civiles. En effet, l'art. 38 al. 2 LCAP énonce que les frais accessoires peuvent être comptés séparément aux locataires, ce qui signifierait que le loyer fixé par l'OFL ne peut pas inclure les frais accessoires. Dès lors, s'il était décidé que les frais accessoires ne sont pas dus en sus du loyer, cela impliquerait que le loyer net inclut les frais accessoires; il devrait alors être considéré comme illicite au sens de la LCAP. En statuant sur les conclusions des intimés demandant à ne pas payer de frais accessoires en sus du loyer, l'autorité civile risquerait de se mettre en contradiction évidente avec les normes de la LCAP dont l'application relève exclusivement de l'autorité administrative; faute de pouvoir obtenir le remboursement des frais accessoires, la viabilité de la gestion des immeubles soumis à la LCAP serait à terme mise en cause.
La recourante se réfère notamment à un arrêt que l'autorité précédente a rendu le 24 octobre 2011 dans une cause portant sur l'introduction de la facturation séparée des frais accessoires précédemment inclus dans le loyer. De l'avis de l'autorité précédente, cette modification influait sur le montant du loyer; en effet, celui-ci devait être réduit afin de compenser le fait que les frais en étaient sortis et facturés séparément, sauf à admettre une augmentation indirecte du loyer net. L'autorité précédente en a déduit qu'il se justifiait de soumettre l'entier du litige à l'autorité administrative, pour parer au risque de décisions contradictoires émanant de l'autorité civile statuant sur le montant des frais accessoires, respectivement de l'autorité administrative statuant sur le montant du loyer net sans frais accessoires.
4.
Le présent litige porte uniquement sur un montant exigé, en sus du loyer, à titre de remboursement de frais accessoires. Que les locataires contestent l'obligation même de payer des frais accessoires en sus du loyer ou qu'ils ne contestent que le montant facturé à ce titre, cela ne change rien au fait que le litige concerne uniquement des frais accessoires dus en sus du loyer, lequel n'est nullement en cause. De l'art. 54 al. 4 LOG, exprimant la volonté claire du législateur de limiter le contrôle de l'OFL au seul loyer, il faut déduire que le présent litige relève des autorités civiles. Cette solution est au demeurant la seule raisonnable, au motif qu'on ne discerne pas quel serait l'avantage de prévoir des compétences différentes selon que le litige porte sur le principe même des frais accessoires, ou uniquement sur leur montant.
La cour de céans s'est déjà prononcée sur l'argument tiré de l'art. 38 LCAP; il n'y a pas motif d'y revenir. Quant aux conséquences négatives que la recourante dit craindre pour la viabilité des appartements subventionnés, elles peuvent être facilement évitées en réglant de manière correcte le paiement des frais accessoires dans le contrat de bail. Enfin, la recourante invoque de prétendus problèmes qui pourraient résulter selon la décision qui pourrait être rendue au fond; cela est d'emblée sans pertinence pour trancher la question de savoir si c'est une autorité civile ou administrative qui est compétente pour rendre cette décision au fond.
5.
La recourante reproche à l'autorité précédente d'avoir commis un déni de justice en s'abstenant de statuer sur sa requête visant à faire auditionner le responsable juridique de l'OFL. Or, la question à trancher était une question de droit, consistant à déterminer si l'autorité précédente était compétente pour connaître de la cause en vertu de l'art. 54 al. 4 LOG. L'interprétation d'une norme légale n'implique pas de procédure probatoire; l'autorité saisie se prononce d'office et librement sur sa compétence, sans avoir à demander l'avis d'autres autorités. La requête de la recourante étant manifestement hors de propos, l'on ne peut que conclure que l'autorité précédente l'a rejetée de manière implicite.
6.
La recourante, qui succombe, supporte les frais et dépens de la présente procédure (art. 66 al. 1 et art. 68 al. 1 et 2 LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge de la recourante.
3.
La recourante versera aux intimés, créanciers solidaires, une indemnité de 2'500 fr. à titre de dépens.
4.
Le présent arrêt est communiqué aux parties et à la Cour d'appel civile du Tribunal cantonal du canton de Vaud.
Lausanne, le 6 novembre 2015
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente: Kiss
La Greffière: Monti