Build a Decimal to Binary Converter - Step 96

hi, using the jaws for windows 2026 screen reader, windows 11 pro, google chrome. up to step 96 and have typed up the correct code and followed what the step requires, wondering if it is my code or logic? or is there a bug with fcc. totally blind so cannot hear any hidden characters, trailling spaces or hidden stray characters. so can any one help me out and tell me how to get step 96 passing, will paste my code, the error message and the link to the step. and fcc should be consistent. some stpes have the help button but then other steps in the same project dont have it. strange. so thank you.
marvin.
ps: pasting the code below.

javascript:

// Step 1–96: Decimal to Binary Converter with Animation

// Get DOM elements
const numberInput = document.getElementById("number-input");
const convertBtn = document.getElementById("convert-btn");
const result = document.getElementById("result");
const animationContainer = document.getElementById("animation-container");

// Animation data
const animationData = [
  { inputVal: 5, addElDelay: 1000 },
  { inputVal: 2, addElDelay: 1500 },
  { inputVal: 1, addElDelay: 2000 }
];

// Recursive decimal to binary function
const decimalToBinary = (input) => {
  if (input === 0 || input === 1) {
    return String(input);
  } else {
    return decimalToBinary(Math.floor(input / 2)) + (input % 2);
  }
};

const showAnimation = () => {
  result.innerText = "Call Stack Animation";

  animationData.forEach((obj) => {
    setTimeout(() => {
      animationContainer.innerHTML += `<p id="${obj.inputVal}">${decimalToBinary(obj.inputVal)}</p>`;
    }, obj.addElDelay);
  });
};

  
    

// Check user input and convert
const checkUserInput = () => {
  const inputInt = parseInt(numberInput.value);

  if (!numberInput.value || isNaN(inputInt) || inputInt < 0) {
    alert("Please provide a decimal number greater than or equal to 0");
    return;
  }

  if (inputInt === 5) {
    showAnimation();
    return;
  }

  result.textContent = decimalToBinary(inputInt);
  numberInput.value = "";
};

// Event listeners
convertBtn.addEventListener("click", checkUserInput);

numberInput.addEventListener("keydown", (e) => {
  if (e.key === "Enter") {
    checkUserInput();
  }
});

erorr:
You should use string interpolation to set the text of the paragraph element to decimalToBinary(${obj.inputVal}) .
link to the step:

You are not using the starting code provided by the step. You need to use the starting code provided by the step.

Here is the starting code provided by the step:

const numberInput = document.getElementById("number-input");
const convertBtn = document.getElementById("convert-btn");
const result = document.getElementById("result");
const animationContainer = document.getElementById("animation-container");
const animationData = [
  {
    inputVal: 5,
    addElDelay: 1000
  },
  {
    inputVal: 2,
    addElDelay: 1500
  },
  {
    inputVal: 1,
    addElDelay: 2000
  }
];

const decimalToBinary = (input) => {
  if (input === 0 || input === 1) {
    return String(input);
  } else {
    return decimalToBinary(Math.floor(input / 2)) + (input % 2);
  }
};

const showAnimation = () => {
  result.innerText = "Call Stack Animation";

  animationData.forEach((obj) => {
    setTimeout(() => {
      animationContainer.innerHTML += `
        <p id="${obj.inputVal}" class="animation-frame">

        </p>
      `;
    }, obj.addElDelay);
  });
};

const checkUserInput = () => {
  const inputInt = parseInt(numberInput.value);

  if (!numberInput.value || isNaN(inputInt) || inputInt < 0) {
    alert("Please provide a decimal number greater than or equal to 0");
    return;
  }

  if (inputInt === 5) {
    showAnimation();
    return;
  }

  result.textContent = decimalToBinary(inputInt);
  numberInput.value = "";
};

convertBtn.addEventListener("click", checkUserInput);

numberInput.addEventListener("keydown", (e) => {
  if (e.key === "Enter") {
    checkUserInput();
  }
});

Once you use the starting code that the step gives you, then you should make the following change:

You should use string interpolation to set the text of the paragraph element to decimalToBinary(${obj.inputVal}) .

You need to attempt to submit a solution 3 times before the help button will appear.

hi, okay tried your suggestion jeremy. and using jaws 2026, and think it is playing up on the forum using chrome. so if in the wrong reply. i apologize. now, did try your suggestions, did not pass, reset the lesson, rewrote the code, did a hard refresh, and not passing, so, as i am blind and cannot see, wondering if theres extra hidden white space, hidden characters which a screen reader cannot see. also did look to see if other users having issues on the forum with this step and they are having issues. so wondering if a bug with fcc. so wondering if you can test maybe at your end or maybe a script that then can detect hidden characters in the dev console, and then can then delete them. would this help. and totally frustrated.
marvin.

What is the current code you are submitting?

For the last several posts you have made, you are not using the given starting code. I would check that you are using the given starting code before worrying about hidden characters.

hi, heres my latest code. so if it is not correct, and not the starting code, then tell me how to get this to pass. marvin.
ps: pasting below.

const numberInput = document.getElementById("number-input");
const convertBtn = document.getElementById("convert-btn");
const result = document.getElementById("result");
const animationContainer = document.getElementById("animation-container");
const animationData = [
  {
    inputVal: 5,
    addElDelay: 1000
  },
  {
    inputVal: 2,
    addElDelay: 1500
  },
  {
    inputVal: 1,
    addElDelay: 2000
  }
];

const decimalToBinary = (input) => {
  if (input === 0 || input === 1) {
    return String(input);
  } else {
    return decimalToBinary(Math.floor(input / 2)) + (input % 2);
  }
};

const showAnimation = () => {
  result.innerText = "Call Stack Animation";
  animationData.forEach((obj) => {
    setTimeout(() => {
      animationContainer.innerHTML += `<p id="${obj.inputVal}">${decimalToBinary(obj.inputVal)}</p>`;
    }, obj.addElDelay);
  });
};


const checkUserInput = () => {
  const inputInt = parseInt(numberInput.value);

  if (!numberInput.value || isNaN(inputInt) || inputInt < 0) {
    alert("Please provide a decimal number greater than or equal to 0");
    return;
  }

  if (inputInt === 5) {
    showAnimation();
    return;
  }

  result.textContent = decimalToBinary(inputInt);
  numberInput.value = "";
};

convertBtn.addEventListener("click", checkUserInput);

numberInput.addEventListener("keydown", (e) => {
  if (e.key === "Enter") {
    checkUserInput();
  }
});

This is supposed to be on 5 lines, with line breaks where the starting code has them.

hi, did do a new post on step 99. and maybe accidetnally posted to general, not java script, my screen reader think was playing up. sorry if on the wrong forum section, can you check if i have that post and move it or just maybe merge with this post. sorry.
marvin..

This is your post for step 96

hi i did post about step 99 and maybe in general. so can you move that to javascript. dont want to create another post and then get banned or suspended because i did not follow rules. so can you check the post is step 99 build a decimal to binary converter not passing. unless it is in the notifications and messages section on the forum. so need help with this step.

Hi, Marvin! Sure, I did it, no worries, now please check that topic