Preheat oven to 375°F (190°C) and line a 9-inch square pan (or similar) with parchment paper.
Mix the flour, cold butter, sugar and salt until well combined and the mixture resembles fine breadcrumbs.
Pour the flour-mix into the prepared pan and press firmly into an even layer.
Pierce dough all over with a fork and bake for about 20 minutes, until golden. Set aside to cool.
For the Topping
For the topping, heat the butter, sugar and soy milk in a saucepan. Stirring frequently, bring the mixture to a boil and let simmer for about 30-60 minutes until the caramel is thick and golden brown. Optional: Add vanilla and/or salt to taste.
Pour the caramel over the shortbread and let cool completely.
Melt the chocolate in a bowl set over a pan of simmering water (ensure that the bottom of the bowl does not touch the water). Stir occasionally.
Pour the chocolate over the caramel layer, spread evenly and set aside to cool.