Sachverhalt: A. Am 21. November 2016 verurteilte das Strafgericht des Kantons Basel-Stadt drei Angeklagte je insbesondere wegen mehrfacher qualifizierter ungetreuer Geschäftsbesorgung zu Freiheitsstrafen, unter Gewährung des bedingten bzw. teilbedingten Vollzugs. Es verpflichtete die Angeklagten zu Schadenersatzzahlungen an zahlreiche Privatkläger. Es ordnete die Begleichung dieser Forderungen aus den sichergestellten Vermögenswerten der B._ AG und der C._ AG an. Den Saldo der darüber hinaus beschlagnahmten Vermögenswerte der B._ AG und der C._ AG zog es (nach Rückstellung für eine Forderung der Steuerverwaltung) ein. Das Strafgericht führte aus, die B._ AG und die C._ AG gehörten der A._ AG, welche ihrerseits von den Angeklagten geführt bzw. kontrolliert werde. Die drei Verurteilten, ein Privatkläger und die A._ AG erhoben Berufung beim Appellationsgericht Basel-Stadt, die Staatsanwaltschaft Anschlussberufung. Am 9. April 2019 verlangte die A._ AG den Ausstand des verfahrensleitenden Appellationsgerichtspräsidenten Christian Hoenen. Das Ausstandsverfahren leitet Appellationsgerichtspräsidentin Liselotte Henz. Am 6. Mai 2019 verlangte die A._ AG auch deren Ausstand. Am 3. Dezember 2019 wies das Appellationsgericht (Dreiergericht) das Ausstandsbegehren gegen Liselotte Henz ab. B. Die A._ AG führt Beschwerde in Strafsachen mit dem Antrag, den Entscheid des Appellationsgerichts aufzuheben, soweit das Ausstandsbegehren gegen Liselotte Henz abgewiesen bzw. diese als nicht befangen befunden worden sei. C. Das Appellationsgericht beantragt unter Hinweis auf seinen Entscheid die Abweisung der Beschwerde. Liselotte Henz hat sich nicht vernehmen lassen. Die A._ AG hat repliziert.