Can I block the area of a face (the surface) and then have one axis length automatically changed?
This would not be possible for single faces in vanilla Blender.  There may be an add-on for this somewhere.  One of the main problems is that faces aren't always rectangular quads aligned on an axis.  Once you get out of that realm, the math can become pretty messy.

There is a way to do this in Object Mode, though, for whole objects using Drivers.  The only problem with this method is you can't add a Driver to the Object Dimensions.  So we must Drive the Scale of the object instead.

I won't go into all the ins and outs of creating a driver because that subject is well documented.  A great intro video tutorial can be found here: https://www.youtube.com/watch?v=BJJJpWcxp0o



This will show how to scale proportionally in the X/Y direction:

1.) Create a Single Driver for the X-Scale of the cube.

2.) Create two custom properties: "Area" (for the desired L x W area) and "X @ Scale 1.0" (to describe the X dimension when the Scale is at 1.0).  The reason we need the latter is because we cannot use the actual X dimension, since we are using the driver to change that dimension, which would create a circular dependency.

3.) Use the following for the Driver expression: (Area / Y_Dim ) / X_Dim  -- where Area = the ["Area"] custom property, Y_Dim = the actual Y Dimension of the object, and X_Dim is the custom property ["X @ Scale 1.0"]

The relevant information is highlighted with red.  After setting the Y-Dimension to what you want, it will be necessary to click the "Update Dependencies" button to get the most accurate X dimension.  Click the image to enlarge:







If you Apply the Scale you must change the ["X @ Scale 1.0"] Property to reflect the new value.