Cette mesure, qui couvre la période allant de juillet 1966 à mars 2012, prévoit des compensations de 300.000 couronnes tchèques (12.000 euros, 14.000 dollars) pour chaque personne ayant subi une stérilisation imposée par les autorités.
Elle concerne principalement des femmes, mais aussi des hommes, qui ont subi des stérilisations non souhaitées. Dans certains cas, les autorités avaient menacé auparavant de leur retirer leurs enfants ou les aides sociales dont ils bénéficiaient.
La loi entend réparer "une erreur du système communiste", a déclaré le député de droite et gynécologue Bohuslav Svoboda.
Les stérilisations forcées avaient commencé sous le régime communiste dans l'ex-Tchécoslovaquie, mais cette pratique s'est poursuivie après la chute de ce régime en 1989. En 1993, la Tchécoslovaquie s'est scindée en deux pays, la République tchèque et la Slovaquie.
La loi, qui peut concerner jusqu'à 400 personnes, doit être examinée par le Sénat. Si elle est approuvée, elle doit être signée par le président pour être promulguée.
Les organisations de défense des droits de l'homme évoquent ce sujet depuis des années.
Un rapport de l'ombudsman tchèque avait établi en 2005 qu'au moins 50 femmes tchèques, principalement des Roms, avaient été stérilisées illégalement au cours des 30 années précédentes.
Leur dossier ne contenait pas le formulaire de consentement prouvant que la patiente avait été informée d'une manière correcte de la procédure, selon le rapport.
En 2007, un tribunal avait accordé des compensations à une femme rom qui avait déclaré n'avoir jamais donné son consentement à une stérilisation. Elle avait alors cru que les médecins de l'hôpital s'étaient contentés de lui poser un stérilet.
Elle n'avait découvert qu'elle avait été stérilisée que lorsqu'elle s'était rendue chez son médecin pour se faire retirer le stérilet car elle voulait avoir un autre enfant.
Une autre femme stérilisée, Elena Gorolova, s'est félicitée de l'adoption de ce texte.
"C'est important d'empêcher que cela n'arrive à d'autres femmes", a-t-elle déclaré vendredi à la chaîne CNN Prima News.
Les autorités ont traîné les pieds pour répondre à ces accusations. Le gouvernement a formulé des excuses pour les stérilisations en 2009.
La minorité rom est estimée à entre 200.000 et 300.000 personnes en République tchèque.